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);

img

方法三:

读编辑框数据:value=GetDlgItemInt(IDC_EDIT);

写编辑框数据:SetDlgItemInt(IDC_EDIT,value);

img

方法四与方法五常用到的四个函数:
DoDataExchange();
DDC_xxxx();//关联变量
DDV_xxxx();//验证变量
UpdateData();//UpdateData(TRUE)为从编辑框获取数据,UpdateData(FALSE)为更新数据到编辑框

img

方法四:

把控件和整型变量相关联:如为控件添加整型成员变量m_num
对整型成员变量直接进行操作

img

方法五:

把控件和控件变量相关联:如为控件添加控件成员变量m_edit
对控件类进行操作:
读编辑框数据:m_edit.GetWindowText(ch,length);
写编辑框数据:m_edit.SetWindowText(ch);

img

方法六:

发送消息函数: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)为编辑框窗口句柄;
img

方法七:

发送消息函数:SendDlgItemMessage();
SendDlgItemMessage()相当于是将SendMessage()和GetDlgItem(IDC_EDIT)->m_hWnd合并而来的;
读编辑框数据:SendDlgItemMessage(IDC_EDIT,WM_GETTEXT,12,(LPARAM)ch);
写编辑框数据:SendDlgItemMessage(IDC_EDIT,WM_SETTEXT,0,(LPARAM)ch);

img

————————————————

原文链接:https://blog.csdn.net/pengz0807/article/details/47685583