读书人

怎么将CStatic成员变量挂接到对话框的

发布时间: 2012-01-18 00:23:26 作者: rapoo

如何将CStatic成员变量挂接到对话框的控件上?
我声明了成员变量 CStatic m_MyStatic;
在对话框建立了一个静态文本控件IDC_STATIC
请问如何将IDC_STATIC挂到m_MyStatic上?

看书上说直接在DoDataChange函数上加上DDX_Control(pDX,IDC_STATIC,m_MyStatic)
但我运行不行


[解决办法]
不需要这么麻烦,只需要选中静态文本控件IDC_STATIC ,然后弹出右键菜单,选择添加变量,然后输入变量名为:
m_MyStatic就可以了.
[解决办法]
DDX_Control(pDX,IDC_STATIC,m_MyStatic) 是变量与控件之间的数据交换,是你在添加变量时程序自动实现的!

[解决办法]
注意几点:
1.IDC_STATIC这个resource的名请自己修改
因为STATIC默认不会当你添加几个的时候,后面自动加上数字
2.你应该只需要用工具添加就可以了
知道工具后面做了什么即可
a.定义了一个变量
b.把变量和资源关联起来(如umlzhijia 所说)
3.你如果希望自己添加,请从Create开始。
CStatic m_MyStatic;
m_MyStatic.Create(...,IDC_STATIC1);
这样你的变量就控制对应的Resource了
[解决办法]
把组件的名字IDC_STATIC改成别的,如IDC_STATIC1.静态控件的名字都是IDC_STATIC,所以要改,否则没有办法形成一一对应关系(个人理解).在DDX_Control(pDX,IDC_STATIC,m_MyStatic) 也改为DDX_Control(pDX,IDC_STATIC1,m_MyStatic).
[解决办法]
楼上这两位已经说得非常明白详细了。按着这个方法做就好了
用好ClassWizard。书上说的是原理,该变动的时候要变动
[解决办法]
使用函数SubclassDlgItem,将m_MyStatic就可以相关。
[解决办法]
lz上的几位方法都可以用,~

读书人网 >VC/MFC

热点推荐