MFC访问对话框控件的7种方法
方法一:
读编辑框数据:GetDlgItem(IDC_EDIT)->GetWindowText(string ,length);
写编辑框数据:GetDlgItem(IDC_EDIT)->SetWindowText(string);
[](javascript:void(0)😉
1 void CMFCApplication2Dlg::OnBnClickedButton1()
2 {
3 int n1, n2, n3;
4 _TCHAR str1[10], str2[10], str3[10];
5 GetDlgItem(IDC_EDIT1)->GetWindowText(str1,10);
6 GetDlgItem(IDC_EDIT2)->GetWindowText(str2, 10);
7 n1 = _ttoi(str1);
8 n2 = _ttoi(str2);
9 n3 = n1 + n2;
10 _itot_s(n3, str3, 10);
11 GetDlgItem(IDC_EDIT3)->SetWindowText(str3);
12
13
14 }
[](javascript:void(0)😉
GetWindowText();
可以获取指定窗口的标题文本或者从窗口类派生的控件的文本(如Combox)
函数功能
该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。如果指定的窗口是一个控件,则拷贝控件的文本。但是,GetWindowText不能接收在其他应用程序中的控件的文本。
函数原型:Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount);
参数
hWnd:带文本的窗口或控件的句柄。
IpString:指向接收文本的缓冲区的指针。
nMaxCount:指定要保存在缓冲区内的字符的最大个数,其中包含NULL字符。如果文本超过界限,它就被截断。
返回值
如果函数成功,返回值是拷贝的字符串的字符个数,不包括中断的空字符;如果窗口无标题栏或文本,或标题栏为空,或窗口或控制的句柄无效,则返回值为零。若想获得更多错误信息,请调用GetLastError函数。
函数不能返回在其他应用程序中的编辑控件的文本。
备注
如果目标窗口属于当前进程,GetWindowText函数给指定的窗口或控件发送WM_GETTEXT消息。如果目标窗口属于其他进程,并且有一个窗口标题,则GetWindowTeXt返回窗口的标题文本,如果窗口无标题,则函数返回空字符串。
SetWindowText();
函数功能:该函数改变指定窗口的标题栏的文本内容(如果窗口有标题栏)。如果指定窗口是一个控件,则改变控件的文本内容。然而,SetWindowText函数不改变其他应用程序中的控件的文本内容。 函数原型:BOOL SetWindowText(HWND hwnd,LPCTSTR lpString); 参数: hWnd:要改变文本内容的窗口或控件的句柄。 lpString:指向一个空结束的字符串的指针,该字符串将作为窗口或控件的新文本。 返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。 备注:如果目标窗口属于当前进程,SetWindowText函数会使WM_SETTEXT消息发送给指定的窗口或控件。然而,如果控件是以WS_CAPTION风格创建的列表框控件,SetWindowText函数将为控件设置文本,而不是为列表项设置文本。 SetWindowText函数不扩展tab字符(ASCII代码0×09),Tab字符以字符‘}’来显示。
方法二:
读编辑框数据: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);
————————————————
原文链接:https://blog.csdn.net/pengz0807/article/details/47685583