MFC訪問對話框控件的7種方法


方法一:

讀編輯框數據:GetDlgItem(IDC_EDIT)->GetWindowText(string ,length);
寫編輯框數據:GetDlgItem(IDC_EDIT)->SetWindowText(string);

 

 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 }

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM