今天下午整理了下MFC访问对话框控件的一些常用方法,一共这里出7种常用方法。下面我以实现一则加法运算为例介绍这7种方法。
首先建工程添加所需的控件,添加这些控件很简单我就不一一介绍了。添加完成后就成了下面这个样子:
上面各各个控件的功能大家应该都能看懂没有问题,7个“=”分别对应着这7种方法。
3个编辑框从左到右分别是IDC_EDIT1、IDC_EDIT2和IDC_EDIT3;
7个“=”从上到下分别是从IDC_BUTTON1到IDC_BUTTON7。
方法一:
读编辑框数据:GetDlgItem(IDC_EDIT)->GetWindowText(string ,length);写编辑框数据:GetDlgItem(IDC_EDIT)->SetWindowText(string);
代码实现如下图所示:
方法二:
读编辑框数据:GetDlgItemText(IDC_EDIT,string,length);写编辑框数据:SetDlgItemText(IDC_EDIT,string);
代码实现如下图所示:
方法三:
读编辑框数据:value=GetDlgItemInt(IDC_EDIT);
写编辑框数据:SetDlgItemInt(IDC_EDIT,value);
代码实现如下图所示:
方法四与方法五常用到的四个函数:
DoDataExchange();
DDC_xxxx();//关联变量
DDV_xxxx();//验证变量
UpdateData();//UpdateData(TRUE)为从编辑框获取数据,UpdateData(FALSE)为更新数据到编辑框
方法四与方法五需添加成员变量如下图所示:
方法四:
把控件和整型变量相关联:如为控件添加整型成员变量m_num对整型成员变量直接进行操作
代码实现如下图所示:
方法五:
把控件和控件变量相关联:如为控件添加控件成员变量m_edit对控件类进行操作:
读编辑框数据:m_edit.GetWindowText(ch,length);
写编辑框数据:m_edit.SetWindowText(ch);
代码实现如图所示:
方法六:
发送消息函数:SendMessage();读编辑框数据: ::SendMessage(GetDlgItem(IDC_EDIT)->m_hWnd,WM_GETTEXT,length,(LPARAM)ch);
写编辑框数据: ::SendMessage(GetDlgItem(IDC_EDIT)->m_hWnd,WM_SETTEXT,0,(LPARAM)ch);
其中GetDlgItem(IDC_EDIT)->m_hWnd)为编辑框窗口句柄;
代码实现如图所示:
方法七:
发送消息函数:SendDlgItemMessage();SendDlgItemMessage()相当于是将SendMessage()和GetDlgItem(IDC_EDIT)->m_hWnd合并而来的;
读编辑框数据:SendDlgItemMessage(IDC_EDIT,WM_GETTEXT,12,(LPARAM)ch);
写编辑框数据:SendDlgItemMessage(IDC_EDIT,WM_SETTEXT,0,(LPARAM)ch);
代码实现如图所示:
最后附上效果图一张
这7个方法中第4个方法最简单,但我们最好能把这7个方法都掌握住!