- 通过类向导创建关联变量
在对话框资源上右键-》类向导-》成员变量分页-》选中控件ID,右边添加变量(可以选value型和Contrl型)
添加关联变量的结果://在头文件中 CListCtrl m_list; //在cpp文件中添加了一行 void CtestDialogDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST1, m_list);//添加的一行 } //值型关联变量 使用时 UpdateData(TRUE); 将界面控件中的值更新到变量 UpdateData(FALSE); 将变量的值更新到界面控件
- 通过函数建立控件型关联变量
a) CWnd::Attach 将一个窗口句柄嫁接到一个CWnd类型变量中 b) CWnd::Detach 移除嫁接到CWnd变量中的句柄。 c) CWnd::SubClassWindow 子类化一个窗口句柄到CWnd派生类变量中,不但要把句柄关联进入CWnd对象中,并且还要将窗口的消息映射到CWnd的子类中。 d) CWnd::UnsubclassWindow 解除子类化 f) CWnd::SubclassDlgItem 根据窗口ID子类化对应窗口
使用如下:
BOOL CtestDialogDlg::OnInitDialog() { CDialogEx::OnInitDialog(); m_numb.SubclassDlgItem(IDC_NUMB, this);//不需要解除 HWND hCombo, hList; GetDlgItem(IDC_DEPT, &hCombo); GetDlgItem(IDC_LIST, &hList); m_combo.SubclassWindow(hCombo); m_list.Attach(hList); //... } void CtestDialogDlg::OnDestroy() { CDialogEx::OnDestroy(); m_combo.UnsubclassWindow();//解除绑定 m_list.Detach();//解除绑定 }