1. 程式人生 > >MFC編輯框資料讀寫

MFC編輯框資料讀寫

簡介:

有幾種常用的獲取編輯框內容和寫入的方法,初學者往往容易迷惑。


1.第一種

通過GetDlgItem和GetWindosText

	char szEdit[10] = {0};
	int nEdit = 0;

	GetDlgItem(IDC_EDIT1)->GetWindowText(szEdit, 10); //獲取
	nEdit = atoi(szEdit); 
	GetDlgItem(IDC_EDIT2)->SetWindowText(szEdit);    //寫入


呼叫atoi函式可將獲取到的值直接轉換成整型。itoa作用相反。


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)讀取

	char szEdit[10] = {0};
	::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd, WM_GETTEXT, 10, LPARAM(szEdit));
使用的自帶的WM_GETTEXT訊息。也可以自定義可用於對話方塊資料間的傳遞。

檢視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)第五種不常用,僅供參考。