找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 10962|回复: 25

[分享] 谁有PROE5.0 二次开发的资料

  [复制链接]

2

主题

63

回帖

0

积分

列兵

积分
0
发表于 2010-12-19 11:53:52 | 显示全部楼层 |阅读模式
谁有PROE5.0 二次开发的资料,谢谢啦

4

主题

27

回帖

0

积分

列兵

积分
0
发表于 2010-12-19 16:14:09 | 显示全部楼层
我也想要
  兄弟你有了能不能给我发一份
邮箱是328154551@qq.com

4

主题

66

回帖

0

积分

列兵

积分
0
发表于 2010-12-19 16:25:34 | 显示全部楼层
顶出高手来。。。。

4

主题

20

回帖

0

积分

列兵

积分
0
发表于 2010-12-27 09:24:27 | 显示全部楼层
市面上还没有中文书籍,建议参看帮助文件,纯英文,需要英语4级以上水平。

14

主题

58

回帖

0

积分

列兵

积分
0
发表于 2011-3-10 10:30:44 | 显示全部楼层
不如让小弟来回答这个问题?以前用Proe4.0配着VC++2005来对Proe进行二次开发,肯定大家都知道是怎么配置VC++2005喽,现在Proe5.0已经出来很长时间了,肯定大家都想尝试一把了,可惜市面上又没有中文书籍(说实话,其实当时用Proe4.0配着VC++2005的时候,那些个中文的参考书也都是在扯淡,中国的学术界我真是无语了),现在就让小弟来给大家详细讲解一下如何对Proe5.0进行二次开发吧,哈哈。由于可能篇幅比较长,我决定将整个过程用多贴发上去吧,呵呵,以防太多错别字的出现,呵呵。

14

主题

58

回帖

0

积分

列兵

积分
0
发表于 2011-3-10 11:12:40 | 显示全部楼层
本帖最后由 lovedongyao 于 2011-3-30 21:05 编辑

首先要知道Proe5.0是要配合着VC++2008来进行二次开发的,所以各位还是赶紧安装一个VC++2008吧,为了讲解详细,我在讲如何配置之前先讲下如何测试Pro/Toolkit安装成功吧,呵呵。
    第一步,找到...\proe5.0\protoolkit\i486_nt\obj这个路径下的一个叫做make_install的文件,用写字板打开,找到如下# Pro/Toolkit Source & Machine Loadpoint  (EXTERNAL USE - DEFAULT)这么一行字,然后把它下面的PROTOOL_SRC = ../..改成PROTOOL_SRC = ...\proe5.0\protoolkit,保存下关闭就好了。
   第二步,在“开始”找到VC++2008,但是这次不是打开VC++2008,而是要打开Microsoft Visual Studio 2008-->Visual Studio Tools-->Visual Studio2008命令提示,打开后感觉像是进入了cmd一样,呵呵。
   第三步,在打开的这个界面里面敲上如下字符cd ...\proe5.0\protoolkit\i486_nt\obj然后回车,再敲上如下的字符nmake /f make_install dll,然后再点回车,等它自己运行一会,运行完了就可以关掉了,然后你再回到...\proe5.0\protoolkit\i486_nt\obj这个文件夹里面,发现多出一个pt_inst_test.dll文件,证明前面的工作全是成功的,呵呵。
   第四步,回到...\proe5.0\protoolkit文件夹,找到protk.dat文件,用写字板打开,将第二行和第三行前面的“.”改成路径...\proe5.0\protoolkit,将第五行后面的“18”改成“wildfire5.0”,其他的都不变,保存,关闭,这一步相信经常弄Proe4.0二次开发的哥们再熟悉不过了,呵呵。
   第五步,打开Proe5.0,找到工具-->辅助应用程序,打开,点“注册”,找到...\proe5.0\protoolkit里的protk.dat,打开,选中它,点“启动”,发现左上角出现一行字“程序'pt_inst_test'成功启动”,这就好了,然后关闭“辅助应用程序”,就差最后一步了,呵呵。
   第六步,打开“文件”菜单栏,会出现一个新的按钮,叫“安装检测”,点击它,就会出现“PRO/TOOLKIT安装检测成功”。
   至此Pro/Toolkit的安装检测全部完成了,呵呵,下一贴教大家配置VC++2008,哈哈

14

主题

58

回帖

0

积分

列兵

积分
0
发表于 2011-3-10 11:36:21 | 显示全部楼层
现在告诉大家配置VC++2008吧,呵呵。
  第一步,加上Proe5.0的包含文件和库文件还用我说么,呵呵,还是说吧,照顾下初学者,也保证讲解的完整性。
  包含文件就是
  ...\proe5.0\protoolkit\includes
   ...\proe5.0\protoolkit\protk_appls\includes
   ...\proe5.0\prodevelop\includes
   ...\proe5.0\prodevelop\prodev_appls\includes
这些加到Tools(工具)-->Options(选项)-->rojects and Solutions(项目于解决方案)-->VC++Directories(VC++目录)-->Show directories for:Include files(显示以下内容的目录:包含文件)
   库文件就是
  ...\proe5.0\protoolkit\i486_nt\obj
   ...\proe5.0\prodevelop\i486_nt\obj
这些加到Tools(工具)-->Options(选项)-->rojects and Solutions(项目于解决方案)-->VC++Directories(VC++目录)-->Show directories foribrary files(显示以下内容的目录:库文件)。
   第二步,在你做的工程名上单击右键,选择Properties(属性)-->Linker(连接器)-->Input(输入)-->Addtional Dependencies(附加依赖项),在这里加载以下lib文件:
(若是MFC DLL工程)
  wsock32.lib
   mpr.lib
   psapi.lib
   netapi32.lib
   prodev_dllmd.lib
  (若是MFC 应用程序工程)
  wsock32.lib
   mpr.lib
   psapi.lib
   protkmd.lib
   pt_asynchronous.lib
   netapi32.lib
   第三步,在你做的工程名上单击右键,选择Properties(属性)->C/C++->reProcessor(预处理器)->reProcessor Definitions(预处理器定义),在这里加上以下命令:
  PRO_USE_VAR_ARGS
    到此为止,你的程序如果没有你自己书写或是逻辑的错误,肯定能运行通过了,绝对没有链接啊,配置啊,库啊,之类的错误,我亲自试过,没有问题,只不过有时可能会出现些警告,但是不会影响整个程序的运行,更不会影响你对Proe5.0的开发。谢谢大家,哈哈,如果你按照我的方法还是弄不出来,那就直接联系我吧,QQ281406178,呵呵

14

主题

58

回帖

0

积分

列兵

积分
0
发表于 2011-3-10 12:13:48 | 显示全部楼层
下面我为大家送上一个我自己做的所有菜单,按钮,对话框的一个总和的程序源代码吧,我自己在VC++2008里面写的,在Proe5.0里面运行成功了,呵呵。

14

主题

58

回帖

0

积分

列兵

积分
0
发表于 2011-3-10 12:14:29 | 显示全部楼层
#include"roMenu.h"
#include"roUtil.h"
#include"roMenubar.h"
#include<roMessage.h>

#include<roUIDialog.h>
#include<roUIPushbutton.h>
#include<roUIRadiogroup.h>
#include<roUILabel.h>
#include<roUICheckbutton.h>
#include<roUIInputpanel.h>
#include<ProArray.h>


int ShowMessage();
int ModeMenuActFn();
int MenuActFn();
int MenuActFn1();
static uiCmdAccessState AccessAvailable(uiCmdAccessMode);
static uiCmdAccessState AccessUnAvailable(uiCmdAccessMode);
static uiCmdAccessState AccessRemove(uiCmdAccessMode);
int MenuButton1ActFn();
int MenuButton2ActFn();
int MenuButton3ActFn();
int CheckButton(uiCmdCmdId,uiCmdValue*);
int SetCheckButtonValue(uiCmdCmdId,uiCmdValue*);
int RadioButton(uiCmdCmdId,uiCmdValue*);
int SetRadioButtonValue(uiCmdCmdId,uiCmdValue*);
int ContrlPashButtonShow(uiCmdCmdId,uiCmdValue*);
int ContrlCheckButton(uiCmdCmdId,uiCmdValue*);

void OK_Action(char*,char*,ProAppData);
void CANCEL_Action(char*,char*,ProAppData);
void SelectType_Action(char*,char*,ProAppData);
void Check_Action(char*,char*,ProAppData);
void InputText_Action(char*,char*,ProAppData);

void OK_Action1(char *,char *,ProAppData);
void CANCEL_Action1(char *,char *,ProAppData);

#define OK 1
#define CANCEL 0


typedef struct user_check_but
{
        uiCmdCmdId command_ID;
        ProBoolean state;
} UserCheckBut;


static ProMenuItemName RadioItemName;
uiCmdAccessId access_id,access_id1;
static UserCheckBut check_button[3];

14

主题

58

回帖

0

积分

列兵

积分
0
发表于 2011-3-10 12:15:28 | 显示全部楼层
extern "C" int user_initialize()
{
        ProError status;
        ProFileName MsgFile;
        uiCmdCmdId PushButton_cmd_id,PushButton_cmd_id1,PushButton_cmd_id2,ModeMenu_cmd_id,radio_act;

   
        ProStringToWstring(MsgFile,"Message.txt");//设置菜单信息文件名

    //添加菜单条
        status=ProMenubarMenuAdd("UserMenuBar","UserMenu","Utilities",PRO_B_TRUE,MsgFile);

    //菜单按钮设置
        status=ProCmdActionAdd("ushButtonAct",(uiCmdCmdActFn)ShowMessage,uiCmdPrioDefault,
                AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&ushButton_cmd_id);//动态函数设置
        status=ProMenubarmenuPushbuttonAdd("UserMenuBar","ushButton","ushButton1",
                "Adding a push button to the ProE menu bar",NULL,PRO_B_TRUE,PushButton_cmd_id,MsgFile);//添加菜单按钮

        //显示UI对话框所有的元素
        status=ProCmdActionAdd("ushButtonAct2",(uiCmdCmdActFn)MenuActFn1,uiCmdPrioDefault,
                AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&ushButton_cmd_id2);//动态函数设置
        status=ProMenubarmenuPushbuttonAdd("UserMenuBar","ushButton_UIAll","All Components",
                "View all of the components in the UI dialog box",NULL,PRO_B_TRUE,PushButton_cmd_id2,MsgFile);//添加菜单按钮

        //菜单复选按钮设置
        status=ProCmdOptionAdd("CheckButtonAct",(uiCmdCmdActFn)CheckButton,PRO_B_TRUE,
                (uiCmdCmdValFn)SetCheckButtonValue,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&check_button[0].command_ID);//动作函数设置
        status=ProMenubarmenuChkbuttonAdd("UserMenuBar","CheckButton","CheckButton1",
                "Adding a check button to the ProE menu bar",NULL,PRO_B_TRUE,check_button[0].command_ID,MsgFile);//添加复选按钮

        //菜单单选按钮组设置
        status=ProCmdOptionAdd("RadioGroupOpt",(uiCmdCmdActFn)RadioButton,PRO_B_FALSE,
                (uiCmdCmdValFn)SetRadioButtonValue,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&radio_act);//动作函数设置
        ProMenuItemName radio_group_items[]={"RadioButton1","RadioButton2","RadioButton3",""};//各单选按钮标识名
        static ProMenuItemLabel radio_group_labels[]={"RadioButton1","RadioButton2","RadioButton3",""};//各单选按钮标签名
        static ProMenuLineHelp radio_group_help[]={"Select radio button 1","Select radio button 2","Select radio button 3"};//各单选按钮提示信息关键字
        status=ProMenubarmenuRadiogrpAdd("UserMenuBar","RadioGroup",3,radio_group_items,
                radio_group_labels,radio_group_help,NULL,PRO_B_TRUE,radio_act,MsgFile);//添加单选按钮


        //下级子菜单设置
        status=ProMenubarmenuMenuAdd("UserMenuBar","SubMenu","SubMenu",NULL,PRO_B_TRUE,MsgFile);//添加下级子菜单项
        //添加复选按钮来控制“菜单按钮1”项的显示与移除
        status=ProCmdOptionAdd("CheckButtonAct1",(uiCmdCmdActFn)ContrlPashButtonShow,PRO_B_TRUE,
                (uiCmdCmdValFn)SetCheckButtonValue,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&check_button[1].command_ID);//动作函数设置
        status=ProMenubarmenuChkbuttonAdd("SubMenu","CheckButton1","RemovePushButton1",
                "Switch Push Button Test",NULL,PRO_B_TRUE,check_button[1].command_ID,MsgFile);//添加复选按钮
        //添加复选按钮来控制“菜单复选按钮1”项不可选或可选
        status=ProCmdOptionAdd("CheckButtonAct2",(uiCmdCmdActFn)ContrlCheckButton,PRO_B_TRUE,
                (uiCmdCmdValFn)SetCheckButtonValue,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&check_button[2].command_ID);//动作函数设置
        status=ProMenubarmenuChkbuttonAdd("SubMenu","CheckButton2","CheckButton1Disenabled",
                "Check Button 1 Disenabled Test",NULL,PRO_B_TRUE,check_button[2].command_ID,MsgFile);//添加复选按钮

       
        //添加模式菜单
        status=ProCmdActionAdd("ModeMenu",(uiCmdCmdActFn)ModeMenuActFn,uiCmdPrioDefault,
                AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&ModeMenu_cmd_id);//动作函数设置
        status=ProMenubarmenuPushbuttonAdd("UserMenuBar","ModeMenu","ModeMenu",
                "Starting a mode-specific menu",NULL,PRO_B_TRUE,ModeMenu_cmd_id,MsgFile);//添加模式菜单按钮
       
        //UI对话框菜单按钮设置
        status=ProCmdActionAdd("ushButtonAct1",(uiCmdCmdActFn)MenuActFn,uiCmdPrioDefault,
                AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&ushButton_cmd_id1);//动态函数设置
        status=ProMenubarmenuPushbuttonAdd("SubMenu","ushButton_UI","UIDialogBox",
                "Open a UI Dialog Box",NULL,PRO_B_TRUE,PushButton_cmd_id1,MsgFile);//添加菜单按钮


        return status;

}


extern "C" void user_terminate()
{
        AFX_MANAGE_STATE(AfxGetStaticModuleState());
}


//菜单项访问权限设置
static uiCmdAccessState AccessAvailable(uiCmdAccessMode)
{
        return(ACCESS_AVAILABLE);
}
static uiCmdAccessState AccessUnAvailable(uiCmdAccessMode)
{
        return(ACCESS_UNAVAILABLE);
}
static uiCmdAccessState AccessRemove(uiCmdAccessMode)
{
        return(ACCESS_REMOVE);
}


int ShowMessage()
{
        ProFileName MsgFile;
        ProStringToWstring(MsgFile,"Message.txt");
        ProMessageDisplay(MsgFile,"Push button pressed");
        return true;
}

int CheckButton(uiCmdCmdId command,uiCmdValue *p_value)
{
        ProFileName MsgFile;
        ProStringToWstring(MsgFile,"Message.txt");
        check_button[0].state=(ProBoolean)!check_button[0].state;//切换菜单复选按钮项的开关状态
        ProMenubarmenuChkbuttonValueGet(p_value,&check_button[0].state);//获得复选按钮之值
        if(check_button[0].state)
                ProMessageDisplay(MsgFile,"Check button selected");
        else
                ProMessageDisplay(MsgFile,"Check button cancel");
        return 0;
}

int ContrlPashButtonShow(uiCmdCmdId command,uiCmdValue *p_value)
{
        ProFileName MsgFile;
        ProStringToWstring(MsgFile,"Message.txt");
        uiCmdCmdId PushButton_cmd_id;
        check_button[1].state=(ProBoolean)!check_button[1].state;
        ProCmdCmdIdFind("PushButtonAct",&PushButton_cmd_id);
        if(check_button[1].state)
        {
                ProCmdAccessFuncAdd(PushButton_cmd_id,(uiCmdAccessFn)AccessRemove,&access_id);
                ProMessageDisplay(MsgFile,"Push button disappear");
        }
        else
                if(access_id!=(uiCmdAccessId)NULL)
                {
                        ProCmdAccessFuncRemove(PushButton_cmd_id,access_id);
                        ProMessageDisplay(MsgFile,"Push button appear");
                }
        return 0;
}

int ContrlCheckButton(uiCmdCmdId command,uiCmdValue *p_value)
{
        ProFileName MsgFile;
        ProStringToWstring(MsgFile,"Message.txt");
        uiCmdCmdId CheckButton_cmd_id;
        check_button[2].state=(ProBoolean)!check_button[2].state;
        ProCmdCmdIdFind("CheckButtonAct",&CheckButton_cmd_id);
        if(check_button[2].state)
        {
                ProCmdAccessFuncAdd(CheckButton_cmd_id,(uiCmdAccessFn)AccessUnAvailable,&access_id);
                ProMessageDisplay(MsgFile,"Check button can't be selected");
        }
        else
                if(access_id!=(uiCmdAccessId)NULL)
                {
                        ProCmdAccessFuncRemove(CheckButton_cmd_id,access_id);
                        ProMessageDisplay(MsgFile,"Check button can be selected");
                }
        return 0;
}

int SetCheckButtonValue(uiCmdCmdId command,uiCmdValue *p_value)
{
        for(int i=0;i<3;i++)
                if(check_button.command_ID==command)
                {
                        ProMenubarmenuChkbuttonValueSet(p_value,check_button.state);
                        break;
                }
                return 0;
}

int SetRadioButtonValue(uiCmdCmdId command,uiCmdValue *p_value)
{
        ProMenubarMenuRadiogrpValueSet(p_value,RadioItemName);
        return 0;
}

int RadioButton(uiCmdCmdId command,uiCmdValue *p_value)
{
        ProFileName MagFile;
        ProStringToWstring(MagFile,"Message.txt");
        ProMenubarMenuRadiogrpValueGet(p_value,RadioItemName);
        if(strcmp(RadioItemName,"RadioButton1")==0)
                ProMessageDisplay(MagFile,"Radio button 1 selected");
        if(strcmp(RadioItemName,"RadioButton2")==0)
                ProMessageDisplay(MagFile,"Radio button 2 selected");
        if(strcmp(RadioItemName,"RadioButton3")==0)
                ProMessageDisplay(MagFile,"Radio button 3 selected");
        return 0;
}

//模式菜单设计
int ModeMenuActFn()
{
        int menu_id;

        //注册菜单文件(.mnu为完整菜单扩展名,.aux为辅助菜单扩展名)
        ProMenuFileRegister("Mode_specific","ModeMenu.mnu",&menu_id);

        //动作函数设置(包括三个选择按钮和一个退出按钮)
        ProMenubuttonActionSet("Mode_specific","Menu Button1",
                (ProMenubuttonAction)MenuButton1ActFn,NULL,0);
        ProMenubuttonActionSet("Mode_specific","Menu Button2",
                (ProMenubuttonAction)MenuButton2ActFn,NULL,0);
        ProMenubuttonActionSet("Mode_specific","Menu Button3",
                (ProMenubuttonAction)MenuButton3ActFn,NULL,0);
        ProMenubuttonActionSet("Mode_specific","Done",
                (ProMenubuttonAction)ProMenuDelete,NULL,0);

        //创建模式菜单
        ProMenuCreate(PROMENUTYPE_MAIN,"Mode_specific",&menu_id);

        //激活模式菜单
        ProMenuProcess("",&menu_id);

        return true;
}

//三个按钮的动作函数
int MenuButton1ActFn()
{
        AfxMessageBox(L"选择菜单项1!",MB_OK);
        return true;
}

int MenuButton2ActFn()
{
        AfxMessageBox(L"选择菜单项2!",MB_OK);
        return true;
}

int MenuButton3ActFn()
{
        AfxMessageBox(L"选择菜单项3!",MB_OK);
        return true;
}


//UI对话框的动作函数
int MenuActFn()
{
        ProError status;
        char *dialog_name="Usr_sample";
        int ActiveDialog_status;

        //装入对话框资源
        status=ProUIDialogCreate(dialog_name,dialog_name);
        if(status!=PRO_TK_NO_ERROR)
        {
                AfxMessageBox(L"UIDialog CreateCreate error!");
                return status;
        }

        //设置对话框指定元件的动作函数
        ProUIRadiogroupSelectActionSet(dialog_name,"SelectType",SelectType_Action,NULL);//设置单选按钮组的动作函数
        ProUICheckbuttonActivateActionSet(dialog_name,"Checkbutton1",Check_Action,NULL);//设置复选按钮1的动作函数
        ProUICheckbuttonActivateActionSet(dialog_name,"Checkbutton2",Check_Action,NULL);//设置复选按钮2的动作函数
        ProUIInputpanelActivateActionSet(dialog_name,"InputText",InputText_Action,NULL);//设置输入框的动作函数
        ProUIPushbuttonActivateActionSet(dialog_name,"OK",OK_Action,NULL);//设置OK按钮的动作函数
        ProUIPushbuttonActivateActionSet(dialog_name,"Cancel",CANCEL_Action,NULL);//设置Cancel按钮的动作函数

        //显示和激活对话框
        status=ProUIDialogActivate(dialog_name,&ActiveDialog_status);
        if(status!=PRO_TK_NO_ERROR)
        {
                AfxMessageBox(L"UIDialogActivate error!");
                return status;
        }

        //从内存清楚对话框资源
        status=ProUIDialogDestroy(dialog_name);
        if(status!=PRO_TK_NO_ERROR)
        {
                AfxMessageBox(L"UIDialogDestroy error!");
                return status;
        }
        return status;
}

//UI对话框单选按钮组动作函数定义
void SelectType_Action(char *dialog,char *component,ProAppData data)
{
        ProLine PromptMessage;
        char** names;
        ProCharLine strtmp;
        int Index;
        ProArrayAlloc(0,sizeof(char*),1,(ProArray*)&names);
        ProUIRadiogroupSelectednamesGet(dialog,component,&Index,&names);
        sprintf(strtmp,"选择基准面:%s",names[0]);
        ProStringToWstring(PromptMessage,strtmp);
        ProUILabelTextSet(dialog,"ShowMessage",PromptMessage);
        ProArrayFree((ProArray*)&names);
}

//UI对话框复选按钮的动作函数定义
void Check_Action(char *dialog,char *component,ProAppData data)
{
        ProLine PromptMessage;
        ProBoolean set;
        ProUICheckbuttonGetState(dialog,component,&set);
        if(set)
        {
                if(strcmp(component,"CheckButtton1")==0)
                        ProStringToWstring(PromptMessage,"复选按钮1选中");
                else
                        ProStringToWstring(PromptMessage,"复选按钮2选中");
        }
        else
        {
                if(strcmp(component,"CheckButtton1")==0)
                        ProStringToWstring(PromptMessage,"复选按钮1未选中");
                else
                        ProStringToWstring(PromptMessage,"复选按钮2未选中");
        }
        ProUILabelTextSet(dialog,"ShowMessage",PromptMessage);
}

//UI对话框输入框的动作函数定义
void InputText_Action(char *dialog,char *component,ProAppData data)
{
        wchar_t* PromptMessage;
        ProUIInputpanelValueGet(dialog,component,&PromptMessage);
        ProUILabelTextSet(dialog,"ShowMessage",PromptMessage);
}

//UI对话框“OK”按钮的动作函数定义
void OK_Action(char *dialog,char *component,ProAppData data)
{
        ProUIDialogExit(dialog,OK);
}

//UI对话框“CANCEL”按钮的动作函数定义
void CANCEL_Action(char *dialog,char *component,ProAppData data)
{
        ProUIDialogExit(dialog,CANCEL);
}

//显示UI对话框所有元素动作函数
int MenuActFn1()
{
        ProError status;
        char *dialog_name="UI_Allcomponents";
        int ActiveDialog_status;

        //装入对话框资源
        status=ProUIDialogCreate(dialog_name,dialog_name);
        if(status!=PRO_TK_NO_ERROR)
        {
                AfxMessageBox(L"UIDialog CreateCreate error!");
                return status;
        }

        //设置动作函数
        ProUIPushbuttonActivateActionSet(dialog_name,"PushButton1",OK_Action1,NULL);//设置OK按钮的动作函数
        ProUIPushbuttonActivateActionSet(dialog_name,"PushButton2",CANCEL_Action1,NULL);//设置Cancel按钮的动作函数

        //显示和激活对话框
        status=ProUIDialogActivate(dialog_name,&ActiveDialog_status);
        if(status!=PRO_TK_NO_ERROR)
        {
                AfxMessageBox(L"UIDialogActivate error!");
                return status;
        }

        //从内存清楚对话框资源
        status=ProUIDialogDestroy(dialog_name);
        if(status!=PRO_TK_NO_ERROR)
        {
                AfxMessageBox(L"UIDialogDestroy error!");
                return status;
        }

        return status;

}

void OK_Action1(char *dialog,char *component,ProAppData data)
{
        ProUIDialogExit(dialog,OK);
}

void CANCEL_Action1(char *dialog,char *component,ProAppData data)
{
        ProUIDialogExit(dialog,CANCEL);
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

咨询QQ:1359218528|发帖须知!|Archiver|手机版|小黑屋|UG爱好者论坛 ( 京ICP备10217105号-2 )

GMT+8, 2025-5-7 07:45

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表