hur.cn - 华软网

 热门搜索

关于对话框处理函数中的全局变量的问题

  作者:未知    来源:网络    更新时间:2011/6/1
我的对话框处理函数中有一个全局变量giv,在创建对话框的时候根据参数给giv赋值,然后在对话框的其他事件中使用giv。giv的声明方式是:
static int giv;

现在的问题是:如果已创建的对话框还没有关闭的时候,又创建了新的对话框,那么前面对话框中的giv的值就会在创建后面的对话框的时候改变,也就是两个对话框的giv的值都是后面的值。

我想问的是:
怎么样声明才能达到下面的要求:
1)创建对话框的时候给giv赋的值在同一个对话框的不同事件中都有效;
2)各个对话框给giv赋的值互不影响。
---华软 网友回答---
那只能把giv作为对话框的成员变量...

---华软网友回复---
SetWindowLong GWL_USERDATA可以为窗口设置一个私有的值
---华软网友回复---
引用 1 楼 oyljerry 的回复:
那只能把giv作为对话框的成员变量...

用的不是MFC,就是C语言+API。
---华软网友回复---
引用楼主 ashamwolf 的回复:
我的对话框处理函数中有一个全局变量giv,在创建对话框的时候根据参数给giv赋值,然后在对话框的其他事件中使用giv。giv的声明方式是:
static int giv;

现在的问题是:如果已创建的对话框还没有关闭的时候,又创建了新的对话框,那么前面对话框中的giv的值就会在创建后面的对话框的时候改变,也就是两个对话框的giv的值都是后面的值。

我想问的是:
怎么样声明才能达到下面……

补充一下,giv是在对话框的处理函数中声明的。
---华软网友回复---
引用 2 楼 lactoferrin 的回复:
SetWindowLong GWL_USERDATA可以为窗口设置一个私有的值

我实际定义的是一个结构体,刚试了一下,在后面的事件中,所赋的值已经没有了。
---华软网友回复---
引用 5 楼 ashamwolf 的回复:
引用 2 楼 lactoferrin 的回复:
SetWindowLong GWL_USERDATA可以为窗口设置一个私有的值

我实际定义的是一个结构体,刚试了一下,在后面的事件中,所赋的值已经没有了。

GetWindowLong得到这个值      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。