Pro/TOOLKIT示例程序:菜单,Checkbox和RadioButton菜单项

来源:互联网 发布:编程一小时官网 编辑:程序博客网 时间:2024/06/05 04:50

转载自:http://www.icaxdev.com/?p=869

示例效果如下图:

示例菜单1

示例菜单2

代码如下:

#pragma once #include "stdafx.h"#include "PTKHeaders.h"#include <string>#include <vector> using std::wstring;using std::vector; // 函数声明uiCmdAccessState TestAccess(uiCmdAccessMode access_mode); int Test1(uiCmdCmdId  command,  uiCmdValue *p_value,  void       *p_push_command_data); int Test2(uiCmdCmdId  command,  uiCmdValue *p_value,  void       *p_push_command_data); int UserCheckOptionCmd(uiCmdCmdId  command,   uiCmdValue *p_value,   void       *p_push_command_data);int UserCheckOptionCmd_ValFunc(uiCmdCmdId  command,   uiCmdValue *p_value); int UserRadioOptionCmd(uiCmdCmdId  command,   uiCmdValue *p_value,   void       *p_push_command_data);int UserRadioOptionCmd_ValFunc(uiCmdCmdId  command,   uiCmdValue *p_value); // Check Buttontypedef struct user_check_button{uiCmdCmdId command;wstring cmdName;ProBoolean state;}UserCheckButton; static UserCheckButton myChkBtns[3] = { 0 }; static ProMenuItemName radio_group_items[] = {"TestRadio1", "TestRadio2", "TestRadio3", ""};static ProMenuItemLabel radio_group_labels[] = {"TestRadio1", "TestRadio3", "TestRadio3", ""};static ProMenuLineHelp radio_group_helps[] = {"TestRadio1_Help", "TestRadio2_Help", "TestRadio3_Help", ""}; // Pro/TOOLKIT入口函数extern "C" int user_initialize(){ProError err; // 信息文件名称ProFamilyName MsgFile;ProStringToWstring(MsgFile, "Test_Msg.txt"); // 添加菜单:TestMenuerr = ProMenubarMenuAdd("TestMenu", "TestMenu", "Help", PRO_B_TRUE, MsgFile); uiCmdCmdId cmdTestId1;err = ProCmdActionAdd("cmdTestId1", Test1, uiCmdPrioDefault, TestAccess, PRO_B_FALSE, PRO_B_FALSE, &cmdTestId1);err = ProCmdIconSet(cmdTestId1, "cmd_test_id_1.gif");err = ProMenubarmenuPushbuttonAdd("TestMenu", "Test1", "Test1", "Test1_Help",NULL, PRO_B_TRUE, cmdTestId1, MsgFile); err = ProMenubarmenuMenuAdd("TestMenu", "Menu1", "Menu1", NULL, PRO_B_TRUE, MsgFile);uiCmdCmdId cmdTestId2;err = ProCmdActionAdd("cmdTestId2", Test2, uiCmdPrioDefault, TestAccess, PRO_B_FALSE, PRO_B_FALSE, &cmdTestId2);err = ProMenubarmenuPushbuttonAdd("Menu1", "Test2", "Test2", "Test2_Help",NULL, PRO_B_TRUE, cmdTestId2, MsgFile); //-------------------------------------------// Check Button//-------------------------------------------err = ProMenubarmenuMenuAdd("TestMenu", "Menu2", "Menu2", NULL, PRO_B_TRUE, MsgFile); uiCmdCmdId cmdOptionA;err = ProCmdOptionAdd("option_cmd_A", UserCheckOptionCmd, PRO_B_TRUE, UserCheckOptionCmd_ValFunc, TestAccess, PRO_B_FALSE, PRO_B_FALSE, &cmdOptionA);myChkBtns[0].command = cmdOptionA;myChkBtns[0].cmdName = L"A";myChkBtns[0].state = PRO_B_TRUE;err = ProMenubarmenuChkbuttonAdd("Menu2", "OptionA", "OptionA", "OptionA_Help", NULL, PRO_B_TRUE, cmdOptionA, MsgFile); uiCmdCmdId cmdOptionB;err = ProCmdOptionAdd("option_cmd_B", UserCheckOptionCmd, PRO_B_TRUE, UserCheckOptionCmd_ValFunc, TestAccess, PRO_B_FALSE, PRO_B_FALSE, &cmdOptionB);myChkBtns[1].command = cmdOptionB;myChkBtns[1].cmdName = L"B";myChkBtns[1].state = PRO_B_TRUE;err = ProMenubarmenuChkbuttonAdd("Menu2", "OptionB", "OptionB", "OptionB_Help", NULL, PRO_B_TRUE, cmdOptionB, MsgFile); uiCmdCmdId cmdOptionC;err = ProCmdOptionAdd("option_cmd_C", UserCheckOptionCmd, PRO_B_TRUE, UserCheckOptionCmd_ValFunc, TestAccess, PRO_B_FALSE, PRO_B_FALSE, &cmdOptionC);myChkBtns[2].command = cmdOptionC;myChkBtns[2].cmdName = L"C";myChkBtns[2].state = PRO_B_FALSE;err = ProMenubarmenuChkbuttonAdd("Menu2", "OptionC", "OptionC", "OptionC_Help", NULL, PRO_B_TRUE, cmdOptionC, MsgFile); err = ProMenubarmenuMenuAdd("TestMenu", "Menu4", "Menu4", NULL, PRO_B_TRUE, MsgFile); //-------------------------------------------// Radio Button//-------------------------------------------err = ProMenubarmenuMenuAdd("TestMenu", "Menu3", "Menu3", NULL, PRO_B_TRUE, MsgFile); uiCmdCmdId radioCmd;err = ProCmdOptionAdd("test_radio_cmd", UserRadioOptionCmd, PRO_B_FALSE, UserRadioOptionCmd_ValFunc,TestAccess, PRO_B_FALSE, PRO_B_FALSE, &radioCmd);err = ProMenubarmenuRadiogrpAdd("Menu3", "TestRadioGroup", 3, radio_group_items, radio_group_labels, radio_group_helps, NULL, PRO_B_TRUE, radioCmd, MsgFile); return 0;} // Pro/TOOLKIT结束时调用的函数extern "C" void user_terminate(){     } int Test1(uiCmdCmdId  command,  uiCmdValue *p_value,  void       *p_push_command_data){AfxMessageBox(_T("Test1"));return 0;} int Test2(uiCmdCmdId  command,  uiCmdValue *p_value,  void       *p_push_command_data){AfxMessageBox(_T("Test2"));return 0;} int UserCheckOptionCmd(uiCmdCmdId  command,   uiCmdValue *p_value,   void       *p_push_command_data){for (int i = 0; i < sizeof(myChkBtns) / sizeof(myChkBtns[0]); ++i){if (myChkBtns[i].command == command){if (PRO_B_TRUE == myChkBtns[i].state){myChkBtns[i].state = PRO_B_FALSE;}else{myChkBtns[i].state = PRO_B_TRUE;}MessageBoxW(NULL, myChkBtns[i].cmdName.c_str(), L"www.icaxdev.com", MB_OK);}}return 0;} int UserCheckOptionCmd_ValFunc(uiCmdCmdId  command,   uiCmdValue *p_value){for (int i = 0; i < sizeof(myChkBtns) / sizeof(myChkBtns[0]); ++i){if (myChkBtns[i].command == command){ProMenubarmenuChkbuttonValueSet(p_value, myChkBtns[i].state);break;}} return 0;} int UserRadioOptionCmd(uiCmdCmdId  command,   uiCmdValue *p_value,   void       *p_push_command_data){ProError err;ProMenuItemName name;    err = ProMenubarMenuRadiogrpValueGet(p_value, name);MessageBoxA(NULL, name, "www.icaxdev.com", MB_OK); return 0;} int UserRadioOptionCmd_ValFunc(uiCmdCmdId  command,   uiCmdValue *p_value){/*ProError err;err = ProMenubarMenuRadiogrpValueGet(p_value, name);TEST_CALL_REPORT("ProMenubarMenuRadiogrpValueGet()", "ProTestRadioButtonValue()", err, err != PRO_TK_NO_ERROR); err = ProMenubarMenuRadiogrpValueSet(p_value, name);*/ /*for (int i = 0; i < sizeof(myChkBtns) / sizeof(myChkBtns[0]); ++i){if (myChkBtns[i].command == command){ProMenubarmenuChkbuttonValueSet(p_value, myChkBtns[i].state);break;}}*/ return 0;} uiCmdAccessState TestAccess(uiCmdAccessMode access_mode){return ACCESS_AVAILABLE;}




0 0