简介:
有几种常用的获取编辑框内容和写入的方法,初学者往往容易迷惑。
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)读取
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)第五种不常用,仅供参考。