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,右键选择打开方式,选择"资源编辑器"就可以打开了

相关推荐
yudiandian20142 小时前
MFC - 使用 Base64 对图片进行加密解密
c++·mfc
yudiandian20142 小时前
MFC - Picture Control 控件显示图片
c++·mfc
孫治AllenSun5 小时前
【算法】图相关算法和递归
windows·python·算法
TeleostNaCl6 小时前
解决 Chrome 无法访问网页但无痕模式下可以访问该网页 的问题
前端·网络·chrome·windows·经验分享
我是李武涯7 小时前
从`std::mutex`到`std::lock_guard`与`std::unique_lock`的演进之路
开发语言·c++
卡提西亚7 小时前
C++笔记-10-循环语句
c++·笔记·算法
亮剑20188 小时前
第1节:C语言初体验——环境、结构与基本数据类型
c++
William_wL_8 小时前
【C++】类和对象(下)
c++
William_wL_9 小时前
【C++】内存管理
c++