iCAx开思工具箱
标题:
如何通过UG自定义菜单直接调用动态链接库
[打印本页]
作者:
brincee
时间:
2003-7-3 21:13
标题:
如何通过UG自定义菜单直接调用动态链接库
我现在只能通过UG内部定义的对话框调用动态链接库,或者通过工具条也可以,有高手能帮帮忙吗?
VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
BEFORE UG_HELP
CASCADE_BUTTON UISTYLER_DLG_CASCADE_BTN
LABEL 查询标准件
END_OF_BEFORE
MENU UISTYLER_DLG_CASCADE_BTN
BUTTON 查询标准件
LABEL 查询标准件
ACTIONS QueryPart.dll //此行提示错误
END_OF_MENU
错误提示:
Item 查询标准件 查询标准件
Actions: <actions not registered>
作者:
darkhorse
时间:
2003-7-3 22:12
Actions 后面该跟dll对应的对话框文件,也就是 *.dlg文件。
作者:
brincee
时间:
2003-7-3 22:21
我的对话框不是UIStyler编辑的,而是MFC里面的模态对话框,通过dll调用,我不知道该怎么办了
作者:
brincee
时间:
2003-7-3 22:42
谢谢斑竹,我已经搞定了,需要通过UF_MB_add_actions函数注册一下就可以了
作者:
zzz
时间:
2003-7-4 10:06
能否吧你的代码共享一下,给大家看看。
作者:
brincee
时间:
2003-7-4 11:53
__declspec(dllimport)void QueryPart();//此为外部动态链接库函数声明
static UF_MB_cb_status_t query_part(
UF_MB_widget_t widget,
UF_MB_data_t client_data,
UF_MB_activated_button_p_t call_button);
static UF_MB_action_t action_table[] =
{
{"QUERY_PART",query_part,NULL},
{ NULL, NULL, NULL}
};
static UF_MB_cb_status_t query_part(
UF_MB_widget_t widget,
UF_MB_data_t client_data,
UF_MB_activated_button_p_t call_button)
{
UF_MB_cb_status_t ret;
QueryPart();
ret=UF_MB_CB_CONTINUE;
return(ret);
}
extern "C" DllExport void ufsta( char *parm, int *returnCode, int rlen )
{
//ufusr_ask_unload();
int errorCode=UF_initialize();
if(0==errorCode)
{
UF_MB_add_actions(action_table);//注册
}
errorCode=UF_terminate();
}
然后编辑菜单文件
VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
AFTER UG_HELP
CASCADE_BUTTON UISTYLER_DLG_CASCADE_BTN
LABEL 标准件库
END_OF_BEFORE
MENU UISTYLER_DLG_CASCADE_BTN
BUTTON 查询标准件
LABEL 查询标准件
ACTIONS QUERY_PART //此行为响应入口,对应上面程序
END_OF_MENU
作者:
pinkwall
时间:
2003-7-4 13:47
其实把 ACTIONS QueryPart.dll 后面的扩展名.dll去掉
写成 ACTIONS QueryPart 就行
不用注册,我做了好多mfc dll的东西 都是这样调的
没问题
作者:
brincee
时间:
2003-7-4 14:44
楼上的同志,我用你的方法试过了,好像不行啊,你是怎么实现的,给个例子看看,谢谢!
作者:
pinkwall
时间:
2003-7-4 16:54
VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
BEFORE UG_HELP
CASCADE_BUTTON DATABASE_DLG_CASCADE_BTN
LABEL CAPP参数库
END_OF_BEFORE
MENU DATABASE_DLG_CASCADE_BTN
BUTTON LOAD_DIALOG_BNT
LABEL 气模孔参数化
ACTIONS dialog.dlg
BUTTON LOAD_CUTTER_BNT
LABEL 刀具库
ACTIONS project.dll
BUTTON LOAD_ASSEMBLY_BNT
LABEL 装配
ACTIONS test03
SEPARATOR
BUTTON LOAD_PROCESS_BNT
LABEL 切削参数库
ACTIONS libdialog
BUTTON LOAD_MASHINE_BNT
LABEL 机床参数库
END_OF_MENU
test03就是一个mfcdll阿,我这里可以阿
作者:
pinkwall
时间:
2003-7-4 16:59
那个mfc的dll放到application里面
作者:
brincee
时间:
2003-7-4 18:49
陈宁,我试过了,没有问题了,比我的方法简单多了,我开始也觉得应该没有像我想象的那么复杂,可是开始怎么也调不通,看过你的帖子才知道是咋回事,谢谢,你现在的二次开发很强啊,以后多切磋切磋。知道我是谁吗?
作者:
pinkwall
时间:
2003-7-4 23:31
应该知道,呵呵
下次别叫我名字,呵呵
作者:
e网轻歌
时间:
2006-11-15 14:35
大家好,我自己弄了个开发目录,我想在自己的开发目录里建立menu文件,去调用UG本身的dll,例如,我自己定义个菜单“水平标注”,一点该菜单,怎么能和在UG制图中点水平标注图标效果一样?应该找哪个文件,谢谢
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3