天天看点

MFC控件关联变量总结

MFC控件关联变量总结

通常在要绑定变量的编辑框控件上右键添加变量就可以。

绑定变量分value和control两种,value是赋值用的,control是控制用的。

对于编辑框的赋值,共分几种方法

1. 不用绑定变量的方法

GetDlgItem(IDC_EDIT1)->GetWindowText(变量);  如果是数组->GetWindowText(数组名,长度)

GetDlgItem(IDC_EDIT1)->SetWindowText(变量);

2. 绑的是value型变量

一共3处

<1处>project1Dlg.h: 头文件

class Cproject1Dlg : public CDialog

{

// 构造

public:

 Cproject1Dlg(CWnd* pParent = NULL); // 标准构造函数

// 对话框数据

 enum { IDD = IDD_PROJECT1_DIALOG };

 protected:

 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

// 实现

protected:

 HICON m_hIcon;

 //生成的消息映射函数

 virtual BOOL OnInitDialog();

 afx_msg void OnSysCommand(UINT nID, LPARAM lParam);

 afx_msg void OnPaint();

 afx_msg HCURSOR OnQueryDragIcon();

 DECLARE_MESSAGE_MAP()

public:

 afx_msg void OnBnClickedOk();

 CString edit1;    //定义了该变量

 CString edit2;

 CEdit edit3;

 CEdit edit4;

 CString edit5;

};

<2处>project1Dlg.cpp : 实现文件

Cproject1Dlg::Cproject1Dlg(CWnd* pParent )

 : CDialog(Cproject1Dlg::IDD, pParent)

 , edit1(_T(""))

 , edit2(_T(""))

 , edit5(_T(""))

{

 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

参数列表跟了edit1

<3处>project1Dlg.cpp : 实现文件

void Cproject1Dlg::DoDataExchange(CDataExchange* pDX)

{

 CDialog::DoDataExchange(pDX);

 DDX_Text(pDX, IDC_EDIT1, edit1);

 DDX_Text(pDX, IDC_EDIT2, edit2);

 DDX_Control(pDX, IDC_EDIT3, edit3);

 DDX_Control(pDX, IDC_EDIT4, edit4);

 DDX_Text(pDX, IDC_EDIT5, edit5);

}

DDX_Text(pDX,IDC_EDIT1, edit1);  变量与控件关联

通过调用UpdateData(TRUE)  UpdateData(FALSE)将控件数据取到变量或将变量数据显到控件

如果变量赋值语句写在对话框构造函数里,则UpdateData(FALSE)可省略,会被自动调用

3. 绑的是control型变量

代码与上方一样,看edit3

但只有两处涉及

CEditedit3;

DDX_Control(pDX,IDC_EDIT3, edit3);

程序里只需要   edit3.GetWindowText(变量);

               edit3.SetWindowText(变量);就可以用了

除了赋值,还能干很多事情.