思路是这样的,在UISTYLER中建立11.dlg和22.dlg两个对话框,
11对话框中有一个push button(已选中call back中的creat dialog复选框),按下这个按钮调出22对话框。
我在vc中建立一个名为11的dll工程,将11_template.c和11.h加入11这个工程,按程序中的说明进行修改,编译连接,并建立custom.men文件,能够从菜单中调出11.dlg对话框。
然后我将22_template.c和22.h加入到11工程中,按程序中的说明删去22_template.c中的#ifdef DISPLAY_FROM_CALLBACK
和#endif DISPLAY_FROM_CALLBACK,将<enter the name of your function>修改为li,并在22.h头文件中
加入extern int li( int *response )函数声明,在11_template.c中的
int CHANGE_22 ( int dialog_id,
void * client_data,
UF_STYLER_item_value_type_p_t callback_data)函数中加入li(response);函数调用,
调试时提示错误说response未定义。在CHANGE_22函数之前加
int *response;一句,调试通过。
在ug里打开11对话框,点中push按钮("hello"按钮),未能弹出22对话框,并在提示行显示Invaild argument.
不知是何处错误,请高手指示。
源代码在附件里 |