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) | 成员变量的访问级别 | 通常选 public 或 protected |
| 变量类型 (CButton) | Visual Studio 自动推断出的控件类类型 | CButton |
| 名称 (m_btnTest) | 变量名(你自己定义) | m_btnTest |
| 注释 (可选) | 对变量的说明备注 | “测试按钮” 等 |
🧠 三、类别区别:“控件变量” vs “值变量”
| 类别 | 用法 | 示例 |
|---|---|---|
| 控件变量(Control) | 用于直接控制控件对象(调用成员函数等) | m_btnTest.SetWindowText(_T("OK")); |
| 值变量(Value) | 仅用于数据交换(Data Exchange),不直接操作控件 | UpdateData(TRUE); // 把Edit框内容读入 m_strNameUpdateData(FALSE); // 把m_strName值显示到Edit框 |
👉 所以:“类别”是控制你要绑定的内容是控件对象本身还是它的数据值。
⚙️ 四、“类向导(Class Wizard)”的作用
在 MFC 里,类向导是一个集中式的工具:
添加控件变量(就是你现在在做的)
添加消息处理函数(如按钮点击事件
OnBnClickedBtnTest())管理DDX/DDV绑定
为资源(如对话框、菜单)创建新的类
✅ 五、建议使用顺序(典型流程)
在 资源视图 中设计对话框。
使用 类向导 → 添加类(Add Class) 为该对话框创建类,例如
CTestDlg。在 类向导 → 添加变量(Add Variable) 里为控件添加控件变量或值变量。
在 类向导 → 消息映射 页添加响应函数(如按钮点击事件)。
告诉你们一个小妙招
解决这个办法,文件资源管理器中找.rc,右键选择打开方式,选择“资源编辑器”就可以打开了
