如何把主窗体的参数传递给属性页,来者有分 如何把主窗体的参数传递给属性页,属性页如何取得edit控件的值(我的属性页放在对话框中)? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1,初始化时2,设置关联变量ctrl+w 需要时,UudateData(); u can use this1) getparent2) post by somebody参数传递的几种用法。一次需要在几个窗口之间传递参数,最开始想到的是定义一个全局变量。可以做了以后发现并不太理想。最后向别人学习了参数传递,解决了很多问题,感觉上也不容易出错。现在写出来与大家分享,也为自己保留,以便察看。-----------------------------------------------------------先来解释一下参数传递的函数意义:message.stringparm (传的是字符)message.DoubleParm (传的是数值)message.PowerObjectParm (传的是可以是窗口、对象、结构等等)例如:(以数值传递为例)在w_old窗口的相关事件中写入如下代码,表示发送要传递参数:long ll_oldll_old = 你要传递的数值openwithparm(w_new(//新窗口),ll_old)------------在w_new窗口(新窗口)的相关事件中写如下代码表示接受参数:long ll_newll_new = Message.DoubleParm /*这样就接收到了你要的参数了。*/-----------------------------------------------------------上面只是一个参数的传递,对于多参数的传递,说是有3种方法: 1.用字符传组传递,到目的地进行分割 2.传递结构对象 3.用对象做载体传递 我现在掌握的也就前两种,最后一种我不太理解。以后会了再补充。现在先来说:1.用字符传组传递,到目的地进行分割意思也就是说,把多个参数组合成一个进行传递,组合的时候需要加入分割符---自己定义的。接收参数后再将其分割成多个。*在w_old窗口的相关事件中写入如下代码:/*例如组合好的自符串为pass_old="123|4567" ---注意组合前123和4567可能都是long型的,不要紧,转换类型就行*/string pass_oldpass_old =string(ll_pre) + "|" + string(ll_tra)// ll_pre = 123,ll_tra = 4567openwithparm(w_new(//新窗口),pass_old)----------*在w_new窗口(新窗口)的相关事件中写如下代码:integer li_fen /*定义用来记录分割符的位置*/long ll_newpre,ll_newtra /*用来分别存放两部分*/string pass_newpass_new = message.stringparm li_fen=Pos(pass_new,"|") /*确定并记录分割符的位置*/ll_newpre=long(left(pass_new,li_fen - 1)) ll_newtra=long(right(pass_new,len(pass_new) - li_fen))/* 上面就是第一种方法-----用字符传组传递,到目的地进行分割*/--------------------------------------在来说说:2.传递结构对象在库文件中 创建一个structure对象,注意是创建,因为它就象一个窗口一样是个对象,不是用与句定义的。structure s_info 变量名 变量类型 ID long Name Char Sex Char/* 先以此为例。 */**在w_old窗口的相关事件中写入如下代码:s_info lstr_prelstr_pre.id = 1 /* 赋ID的值lstr_pre.name = "zhdleo" /* 赋name的值lstr_pre.name = "male" /* 赋sex的值openwithparm(w_new(//新窗口),lstr_pre)**在w_new窗口(新窗口)的相关事件中写如下代码:s_info lstr_tralong tra_idstring tra_namestring tra_sex /* 定义要接收的变量lstr_tra = message.PowerObjectParm /* 接收参数tra_id = lstr_tra.id tra_id = lstr_tra.nametra_id = lstr_tra.sex /* 赋值/* 上面就是第二种方法------传递结构对象-------------------------------------------我个人觉得第二种方法还是非常优的,不但结构清楚,而且定义了结构体也可以看见,容易理解。 多媒体定时器中的回调函数问题 请问文中的support是什么意思? 学网络编程之前要学点什么做基础呢? VC 操作Excel,设置单元格格式为下拉框 对话框上添加控件出错,怎么回事?没分了,有人能帮忙不 想截某个指定窗口的屏,如果窗口被挡住怎么办? 如何将二进制文件中的字符串以字符方式读出来,急,哪为大侠帮我,立刻给分 vc++工程中选择初始化函数,为什么显示can't find the definiton of this function?? GDI 显示 PNG 如何得到版本 求助!!!紧急求助 list<...>的问题?
2,设置关联变量ctrl+w
需要时,UudateData();
2) post by somebody
参数传递的几种用法。一次需要在几个窗口之间传递参数,最开始想到的是定义一个全局变量。可以做了以后发现并不太理想。最后向别人学习了参数传递,解决了很多问题,感觉上也不容易出错。现在写出来与大家分享,也为自己保留,以便察看。
-----------------------------------------------------------
先来解释一下参数传递的函数意义:
message.stringparm (传的是字符)
message.DoubleParm (传的是数值)
message.PowerObjectParm (传的是可以是窗口、对象、结构等等)
例如:(以数值传递为例)
在w_old窗口的相关事件中写入如下代码,表示发送要传递参数:
long ll_old
ll_old = 你要传递的数值
openwithparm(w_new(//新窗口),ll_old)
------------
在w_new窗口(新窗口)的相关事件中写如下代码表示接受参数:
long ll_new
ll_new = Message.DoubleParm /*这样就接收到了你要的参数了。*/
-----------------------------------------------------------上面只是一个参数的传递,
对于多参数的传递,说是有3种方法:
1.用字符传组传递,到目的地进行分割
2.传递结构对象
3.用对象做载体传递
我现在掌握的也就前两种,最后一种我不太理解。以后会了再补充。现在先来说:1.用字符传组传递,到目的地进行分割
意思也就是说,把多个参数组合成一个进行传递,
组合的时候需要加入分割符---自己定义的。接收参数后再将其分割成多个。
*在w_old窗口的相关事件中写入如下代码:
/*例如组合好的自符串为pass_old="123|4567" ---注意组合前123和4567
可能都是long型的,不要紧,转换类型就行*/
string pass_old
pass_old =string(ll_pre) + "|" + string(ll_tra)
// ll_pre = 123,ll_tra = 4567
openwithparm(w_new(//新窗口),pass_old)
----------
*在w_new窗口(新窗口)的相关事件中写如下代码:
integer li_fen /*定义用来记录分割符的位置*/
long ll_newpre,ll_newtra /*用来分别存放两部分*/
string pass_new
pass_new = message.stringparm li_fen=Pos(pass_new,"|") /*确定并记录分割符的位置*/ll_newpre=long(left(pass_new,li_fen - 1)) ll_newtra=long(right(pass_new,len(pass_new) - li_fen))/* 上面就是第一种方法-----用字符传组传递,到目的地进行分割*/
--------------------------------------
在来说说:2.传递结构对象
在库文件中 创建一个structure对象,注意是创建,因为它就象一个窗口一样
是个对象,不是用与句定义的。structure s_info
变量名 变量类型
ID long
Name Char
Sex Char
/* 先以此为例。 */
**在w_old窗口的相关事件中写入如下代码:
s_info lstr_pre
lstr_pre.id = 1 /* 赋ID的值
lstr_pre.name = "zhdleo" /* 赋name的值
lstr_pre.name = "male" /* 赋sex的值
openwithparm(w_new(//新窗口),lstr_pre)
**在w_new窗口(新窗口)的相关事件中写如下代码:
s_info lstr_tra
long tra_id
string tra_name
string tra_sex /* 定义要接收的变量lstr_tra = message.PowerObjectParm /* 接收参数
tra_id = lstr_tra.id
tra_id = lstr_tra.name
tra_id = lstr_tra.sex /* 赋值/* 上面就是第二种方法------传递结构对象
-------------------------------------------
我个人觉得第二种方法还是非常优的,不但结构清楚,而且定义了结构体也
可以看见,容易理解。