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)第五种不常用,仅供参考。

猜你喜欢

转载自blog.csdn.net/C_gyl/article/details/66972310