VC++中不能为控件添加成员变量 深入本质
来源:互联网 发布:保定软件技术学院 编辑:程序博客网 时间:2024/05/17 08:11
项目疑问
提出问题
1,在资源视图--右键单击--添加--资源,选择对话框后—在里面添加文本框时,不能为文本框添加成员变量。而在“解决方案资源管理器”中右键单击添加资源—对话框后,可以使用添加成员变量向导。为什么???(4-25)
分析问题
境界1:这是因为改了对话框ID,默认情况下可以添加成员变量,当改变了对话框ID后就不能添加成员变量了。
境界2:原来是没有为对话框创建类。当创建类后,在类的头文件里会有一个
// 对话框数据
enum { IDD = IDD_DIALOG_LOGIN };
如果此时修改对话框ID,由于上面语句不变,出现新老ID不一致的情况,故不能添加变量。
导出问题:两个宏可以有相同的值吗?答:可以
解决问题
要能添加变量,必须满足以下条件:
(1) 对话框添加类
(2) enum{IDD=···}中的ID和对话框属性里的ID(数值)相同。
(3) Resultion.h有定义
注意1:就算只改对话框属性里的对话框ID,然后编译,系统会提示,此时选“是”或“全是”,系统会自动在Resultion.h中修改,使修改后的对话框ID和修改前的对话框ID相同,故此时不用在对话框的类头文件里修改enum{}。但是这种方法只能用一次,因为在Resultion.h中可以连续自动添加,但是对话框类头文件里不会自动修改。如果连续修改ID,则要把enum{}总的也要修改。总之,为了保持一致性,以上三处都要手动修改。
注意2:数值相同即如果在Resultion.h中定义宏
#define IDD_DIALOG_SET_SYSTEM 132
#define IDD_DIALOG_SETSYSTEM 132
则对话框头文件中,下面3条语句等效:
enum { IDD = IDD_DIALOG_SET_SYSTEM};
enum { IDD = IDD_DIALOG_SETSYSTEM };
enum { 132 };
注意3:
无论控件或对话框的ID修改甚至删除,在编译(F5)时,都会弹出上图对话框提示重新加载Resultion.h,选择是或全是系统自动添加或删除ID
- VC++中不能为控件添加成员变量 深入本质
- VC++中不能为控件添加成员变量 深入本质
- VC++中不能为控件添加成员变量 深入本质
- 如何手动为VC++控件添加变量
- 手动为VC++控件添加变量
- VC++6.0中MFC图片控件无法利用类向导添加成员变量的解决
- 无法将成员变量添加到ID为 的控件中
- vs2010 MFC 为控件添加成员变量的问题
- (VC2005)MFC中添加控件的成员变量.
- VC给控件添加变量
- vc中edit控件使用总结-控件关联变量方法,语句 ,本质,控件获取,实现滚动换行
- MFC 控件添加数组成员变量
- vc 2005 2008 2010 安装ie8后不能添加控件变量解决方法
- vs2005在视图上为控件或菜单添加成员变量/消息时提示出错
- 为category添加属性和成员变量
- MFC添加成员变量向导(控件变量)
- 控件中添加的成员变量value和control的区别 .
- 控件中添加的成员变量value和control的区别
- Nginx configure 自定义编译选项
- 配置tomcat,修改代码后,无须重启web容器
- android.view.WindowLeaked 窗体溢出
- Shockwave预载技术(一)
- ByteBuffer实现解析 Direct vs Heapped性能比较
- VC++中不能为控件添加成员变量 深入本质
- Java中Method类和Constructor类的小测试
- Android编译系统分析
- SVN 锁定和解锁
- Shockwave预载技术(二)
- 黑马程序员--第三阶段--Java基础加强--第25天
- java模式(简例)----外观模式
- 任务三:点到圆到圆柱体的继承
- Unity3d-Texture2D