MFC編輯框資料讀寫
阿新 • • 發佈:2018-12-21
簡介:
有幾種常用的獲取編輯框內容和寫入的方法,初學者往往容易迷惑。
1.第一種
通過GetDlgItem和GetWindosText
char szEdit[10] = {0};
int nEdit = 0;
GetDlgItem(IDC_EDIT1)->GetWindowText(szEdit, 10); //獲取
nEdit = atoi(szEdit);
GetDlgItem(IDC_EDIT2)->SetWindowText(szEdit); //寫入
2.第二種
通過GetDlgItemText
char szEdit[10] = {0};
GetDlgItemText(IDC_EDIT1, szEdit, 10); //獲取
SetDlgItemText(IDC_EDIT2, szEdit); //寫入
3.第三種
通過GetDlgItemInt,只能獲得整型數值
int nEdit = 0;
nEdit = GetDlgItemInt(IDC_EDIT1);
寫入呼叫SetDlgItemInt();
4.第四種
通過類嚮導建立和編輯框關聯的變數
1)資料型變數
(1)讀取資料
UpdateData(TRUE); //從編輯框中獲取資料到關聯變數
(2)寫入資料
UpdateData(FALSE); //關聯變數的值更新到編輯框中
2)關聯編輯框型別變數
char szEdit[10] = {0};
m_Edit.GetWindowText(szEdit, 10);
m_Edit.GetWindowText(szEdit);
m_Edit是CEdit型別的變數。
5.第五種
通過訊息傳送的方式。
1)SendMessage
(1)讀取
使用的自帶的WM_GETTEXT訊息。也可以自定義可用於對話方塊資料間的傳遞。char szEdit[10] = {0}; ::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd, WM_GETTEXT, 10, LPARAM(szEdit));
檢視MSDN:WM_GETTEXT
This message is sent by an application to copy the text that corresponds to a window into a buffer provided by the caller.
WM_GETTEXT wParam = (WPARAM) cchTextMax; lParam = (LPARAM) lpszText;
(2)寫入
GetDlgItem(IDC_EDIT1)->SendMessage(WM_SETTEXT, 0, (LPARAM)szEdit);
檢視MSDN:WM_SETTEXT
This message is sent by an application to set the window text.
WM_SETTEXT wParam = 0; lParam = (LPARAM)(LPCTSTR) lpsz;
2)SendDlgItemMessage
(1)讀取
SendDlgItemMessage(IDC_EDIT1, WM_GETTEXT, 10, (LPARAM)szEdit);
(2)寫入
SendDlgItemMessage(IDC_EDIT1, WM_SETTEXT, 0, (LPARAM)szEdit);
6.注意
1)常用的是前四種。
2)第四種在編輯框較多情況下比較實用,大於三個建議使用此方法。
3)第五種不常用,僅供參考。