iCAx开思工具箱

标题: 【求助】对话框数据传递的问题 [打印本页]

作者: lisa99    时间: 2003-5-26 00:15
标题: 【求助】对话框数据传递的问题
请教各位高手:
         我用UIStyler 建立的对话框相互调用时,编辑框控件的数据如何在对话框之间进行传递。
         很着急!谢谢各位!
作者: darkhorse    时间: 2003-5-26 08:27
结构体UF_STYLER_item_value_type_s通常在查询对话框控件属性和设置对话框控件属性时使用。通常是UF_STYLER_ask_value的输出参数和函数UF_STYLER_set_value的输入参数。UF_STYLER_ask_value函数是查询对话框控件的属性,该函数只能用在对话框的回调函数中,UF_STYLER_set_value函数用来改变控件属性,同样该函数只能用在对话框定义的回调函数中。
作者: darkhorse    时间: 2003-5-26 08:28
还有呀,注意身体,不要睡觉太晚  :)
作者: zzz    时间: 2003-5-26 09:24
有两种方法传递数据:
  
1。使用全局变量, 这一点不需要多解释吧。
2。在调用对话框函数中多加一个变量,依靠这个变量来传递。以前面调用对话框的为例:
作者: zzz    时间: 2003-5-26 09:32
在被调用的对话框(22.dlg)的每一个回调函数中都有一个参数来接收和返回这个变量,就是每一个回调函数的第二个参数void *client_data。它是一个void类型的参数,可以接收任何类型的参数,只要强制类型转换即可。
如果要传递多个参数,可以把这些参数封装在一个结构中,用这个方法传递。
作者: lisa99    时间: 2003-5-27 10:26
感谢各位的帮助,对于以上方法我均试过,现就其出现的问题和各位讨论如下:
  
   darkhorse提出的结构体UF_STYLER_item_value_type_s我觉得它用于对单个对话框的数据进行查询,设定变量数据。
   zzz提出的两种方法:
   1)全局变量法(可以实现);
   2)在调用对话框函数中多加一个变量,依靠这个变量来传递。
      !上面所言是用于11.dlg的对话框调用22.dlg的对话框后,将22.dlg对话框的参数值传递给11.dlg。
      !! 而我希望的是由11.dlg的对话框调出22.dlg后,能够在22.dlg中得到11.dlg传递过来的数据。所以我将11工程文件中添加了extern int sample(int *user_data)函数,(不知正确否)进行传递。
    结果,!与!!得出的结果是一样的,虽然有数据传递,但传递的数据不正确。
     问题何在?望能帮忙解答。
作者: pinkwall    时间: 2003-5-27 10:55
还有一种方法
  
比较土,但是也是好多软件都用的方法
  
就是写一个文本文件,用它来传参数
作者: spline    时间: 2003-5-27 12:14
pinkwall wrote:
还有一种方法  
??
  比较土,但是也是好多软件都用的方法  
??
  就是写一个文本文件,用它来传参数

  
不会吧!如果是大量的结构比较复杂的数据怎么办呢?每个都写一个输出和输入?是不是很累呀?中途有人修改了你的文件怎么办?如果传送一些含义不太明确的数据怎么办比如图片? ::n
这样的方法我还是比较反对的。::O
我的记性不太还好,不敢用全局变量。
zzz的第二种方法才是正途!::y
不过还是有问题,同时传多个数据怎么办?-我的办法:把所有的数据集合在一起,做一个类,然后传类的指针
作者: zzz    时间: 2003-5-27 15:26
可以双向传递,绝无问题,有问题就是你的代码的问题。
前面我已经提到,多个参数可以用结构封装,跟spline讲的是一个方法。
作者: lcfq    时间: 2003-5-27 18:46
在我的应用中,由于用到kf,我是这样来传递数据的:对话框出现时,先采用对话框中的默认数据产生类实例。修改对话框数据后,更新类实例的相关属性值。在其它地方需要获取数据时,只需要读取类实例中的属性值。这种方式可以保证模型数据的一致性。
作者: zrlyf    时间: 2005-11-17 11:08
zzz能不能给个具体怎么传送的例子,把22.dlg中的real控件的值传给11.dlg中的回调函数中使用,谢谢
作者: thermal    时间: 2005-12-9 11:05
lcfq请教你一下,用kf产生的类实例是没有tag的,要想更新你的实例的话是不是必须要提取expression,更新expression才能更新类实例吧! 如果没有tag的话你是如何实现实例的更新的呢?




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