iCAx开思工具箱

标题: UG 请问怎样把数值从一个对话框调到另一个对话框里面使用 [打印本页]

作者: zrlyf    时间: 2005-11-22 14:24
标题: UG 请问怎样把数值从一个对话框调到另一个对话框里面使用
以下是小弟的一个程序,打算把strip.dlg里面real控件的值传给assembly.dlg的回调函数里使用,请问一下怎么修改一下,做到这样进行不下去了
作者: zzz    时间: 2005-11-22 14:30
看不懂你的代码。好像只有一个create_dialog,没有第二个,也没见在哪调用它。


作者: zrlyf    时间: 2005-11-22 14:53
就是一个creat_dialog是用来调用strip.dlg的,在assembly.cpp里面ASSEMBLY_pre_select_step_cb这个回调函数里面引用过,调用是没问题的,问题是数据传不过去,编译时有问题,说函数未resolve
作者: Afang    时间: 2005-11-22 18:06
……你的ASSEMBLY_call_create_strip_dialog是在strip.cpp里定义的,却跑到assembly.cpp里去声明,规范点的话应该在strip.h里声明,然后在assembly.cpp里包含strip.h,然后调用。作为输入变量似乎没有必要用指针了,在调用ASSEMBLY_call_create_strip_dialog之前给你的结构体里的值赋值就可以了,这样在strip.cpp里就可以得到你赋的值了
作者: thermal    时间: 2005-11-23 16:24
afang,我不是要在strip.cpp里面得到值,是要把strip.cpp的constructor回调函数里面赋的值传递给assembly.cpp里面的回调函数里面使用,而strip.dlg是由assemble.dlg调用的,这样的话数值的传递必须要通过指针是吗?这样应该是形参传递给实参吧!还有就是UF_STYLER_create_dialog ( "Strip.dlg",
           STRIP_cbs,      /* Callbacks from dialog */
           STRIP_CB_COUNT, /* number of callbacks*/
           NULL,        /* This is your client data */
           response ) ) != 0 )
里面这个NULL和这个dlg里面回调函数的void *client有什么关系呢!应该写成同一个变量吗?
在assembly.cpp里面是用函数ASSEMBLY_call_create_strip_dialog(&response,。。。)的时候,我此处省略的这个变量应该怎么定义才能得到strip.dlg里面值呢? 得到之后能用在assembly.dlg其他的回调函数中吗?
麻烦你了
作者: Afang    时间: 2005-11-23 17:51
不好意思,理解错了,是要用指针传递。把你dlg里回调函数里的void *client都改成dataStructure_p_t dataTr

UF_STYLER_create_dialog(...,dataTr,...)应该就可以了吧
作者: zrlyf    时间: 2005-11-23 21:00
明天再看 先谢谢你了 最近一直在忙别的呢 呵呵
作者: zhjb113    时间: 2005-11-25 17:26
一个比较笨的方法:用全局变量
作者: supergirl    时间: 2005-11-25 17:32
应该是用void *client的,全局实在是太笨了
作者: zrlyf    时间: 2005-11-28 15:00
感觉好混乱阿,谁能给个例子阿  谢谢 我的E-mail: thermal1234@163.com




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3