Windows MFC添加类,变量,类导向

Visual Studio 的"类向导(Class Wizard)"------用于在 MFC(Microsoft Foundation Classes)项目中管理控件、变量、类之间的绑定关系的工具。我来帮你理清这三者的区别与联系。


🧩 一、三种操作的区别

功能 用途 结果
添加类(Add Class) 为对话框、对话框页、控件模板或自定义逻辑创建一个新的C++类 生成一个新的 .h.cpp 文件,并自动注册到项目中
添加变量(Add Variable) 将资源(如控件)与代码成员变量绑定起来 在类头文件中生成一个成员变量(如 CButton m_btnTest;)并自动完成 DDX/DDV 绑定
类向导(Class Wizard) 管理上述绑定关系、事件消息映射、函数生成等 集中控制变量、消息映射、类创建等一体化操作

🎛 二、在"添加变量"窗口中各项解释(你图里的那一页)

以你截图中的为例:

项目 含义 举例
控件ID (IDC_BTN_TEST) 在资源编辑器中为控件分配的唯一标识符 IDC_BTN_TEST
控件类型 (BUTTON) 控件的类型(如按钮、编辑框、列表框) BUTTON
类别 (控件 / 值) 决定变量的用途:①"控件"类变量用来直接操作控件对象;②"值"类变量用于绑定数据值(比如 Edit 控件和CString 文本的对应) CButton m_btnTest;CString m_strName;
访问 (public/protected/private) 成员变量的访问级别 通常选 publicprotected
变量类型 (CButton) Visual Studio 自动推断出的控件类类型 CButton
名称 (m_btnTest) 变量名(你自己定义) m_btnTest
注释 (可选) 对变量的说明备注 "测试按钮" 等

🧠 三、类别区别:"控件变量" vs "值变量"

类别 用法 示例
控件变量(Control) 用于直接控制控件对象(调用成员函数等) m_btnTest.SetWindowText(_T("OK"));
值变量(Value) 仅用于数据交换(Data Exchange),不直接操作控件 UpdateData(TRUE); // 把Edit框内容读入 m_strName``UpdateData(FALSE); // 把m_strName值显示到Edit框

👉 所以:"类别"是控制你要绑定的内容是控件对象本身 还是它的数据值


⚙️ 四、"类向导(Class Wizard)"的作用

在 MFC 里,类向导是一个集中式的工具:

  1. 添加控件变量(就是你现在在做的)

  2. 添加消息处理函数 (如按钮点击事件 OnBnClickedBtnTest()

  3. 管理DDX/DDV绑定

  4. 为资源(如对话框、菜单)创建新的类


✅ 五、建议使用顺序(典型流程)

  1. 资源视图 中设计对话框。

  2. 使用 类向导 → 添加类(Add Class) 为该对话框创建类,例如 CTestDlg

  3. 类向导 → 添加变量(Add Variable) 里为控件添加控件变量或值变量。

  4. 类向导 → 消息映射 页添加响应函数(如按钮点击事件)。

告诉你们一个小妙招

解决这个办法,文件资源管理器中找.rc,右键选择打开方式,选择"资源编辑器"就可以打开了

相关推荐
LinHenrY12276 分钟前
初识C语言(文件操作)
c语言·windows·microsoft
智者知已应修善业30 分钟前
【删除有序数组中的重复项 II之O(N)算法】2024-1-31
c语言·c++·经验分享·笔记·算法
爱装代码的小瓶子32 分钟前
【c++进阶】C++11新特性:一切皆可{}初始化
开发语言·c++·visual studio
xiaoye-duck39 分钟前
吃透C++类和对象(中):构造函数与析构函数深度解析
c++
AA陈超39 分钟前
Lyra Starter Game 中 GameFeature 类(如 ShooterCore)的加载流程
c++·笔记·学习·ue5·虚幻引擎
加成BUFF1 小时前
C++入门讲解3:数组与指针全面详解
开发语言·c++·算法·指针·数组
不染尘.1 小时前
虚拟网络环境及socket概述
linux·c语言·网络·windows·计算机网络
天若有情6731 小时前
我发明的PROTO_V4协议:一个让数据“穿上迷彩服”的发明(整数传输协议)
网络·c++·后端·安全·密码学·密码·数据
加油=^_^=1 小时前
【C++11】特殊类设计 | 类型转换
c++·单例模式·类型转换
加成BUFF2 小时前
C++入门详解2:数据类型、运算符与表达式
c语言·c++·计算机