对话框控件的变量绑定

来源:互联网 发布:编程对显卡的要求 编辑:程序博客网 时间:2024/05/21 22:22

DDX : Dialog Data Exchange 对话框数据交换
DDV : Dialog Data Validate 对话框数据校验

①、控件类型变量绑定的两种方法 - 数据交换机制:
  ◆ 利用 GetDlgItem 函数;
        1、在头文件中声明变量类型 :CButton *m_Button;
        2、在OnInitDialog中使用GetDlgItem函数
              m_Button = (CButton *)GetDlgItem(IDC_BUTTON);
        3、使用变量 m_Button->EnableWindow(FALSE);
  ◆ 利用 VC向导绑定;
       1、在向导中添加变量名。
       2、编译器会在头文件和 .cpp文件中添加如下代码:
           头文件中添加  :  CButton b_But_Lesson;
           DoDataExchange函数中添加 : DDX_Control(pDX, IDC_BUTTON, b_But_Lesson);
       3、使用变量   b_But_Lesson.EnableWindow(FALSE);
②、VC向导字符串类型、数值类型 变量的绑定
        1、在向导中添加变量,选择对应的数据类型。
        2、VC会生成如下代码:
            头文件:CString m_Str_Edit;
            CPP文件:
                    构造方法添加:, m_Str_Edit(_T(""))
                    DoDataExchange函数中添加: DDX_Text(pDX, IDC_EDIT1, m_Str_Edit);
       ----------------------------------------------------------------------------------
        UpdateData(TRUE); //控件流向变量;
        UpdateData(FALSE); //变量流向控件;                 

③、数据验证机制;
     DoDataExchange函数中添加: DDV_MaxChars(pDX, m_Str_Edit, 5);
    DDV 数据校验要与绑定变量组合使用,同时存在,可以使用VC向导添加代码,也可以手动添加代码。


④、MFC与SDK API中同名函数问题。
 
//SetDlgItemText(IDC_EDIT1,_T("123"));
//::SetDlgItemText(this->m_hWnd,IDC_EDIT1,_T("123"));
CWnd *m_cWnd = AfxGetMainWnd();
::SetDlgItemText(m_cWnd->m_hWnd,IDC_EDIT1,_T("123"));