一:GetDlgItem()->GetWindowText();
二:GetDlgItemText();
三:GetDlgItemInt();这个函数取到控件文本并将之转换成int返回给调用者.这对如使用EDIT控件获取整数非常方便,并且它可以有效处理有符号数.这个函数的调用稍有复杂,查阅MSDN!
四:
将控件与成员变量相关联,比如要从EDIT控件获取整数,可以直接将EDIT控件与int类型的变量相关联,它会直接获取整数,并自动做相关的输入数据的
类型检测,当然也可以关联CEdit型变量,再间接获取数据,用这种方法时要注意UpdateData()函数的适时调用!如果是CEdit控件,可以用
CEdit中的GetWindowText()函数获取其内容!
五:通过发送WM_GETTEXT或者WM_SETTEXT消息的方式获取:
分为三种情况:
(1)使用合全局的::SendMessage(),如下:
::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);//ch1是一个字符数组
或者是:
::SendMessage(m_edit1.m_hWnd,WM_GETTEXT,10,(LPARAM)ch1); //这是已关联控件变量的情况下
(2)使用CWnd的SendMessage(),如下:
GetDlgItem(IDC_EDIT1)->SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
或者是:
m_edit1.SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
(3):使用CWnd::SendDlgItemMessage()函数,它实际上相当于先用GetDlgItem()得到控件句柄,再SendMessage(),是一种组合的方便方式!如:
SendDlgItemMessage(IDC_EDIT1,WM_GETTEXT,10,(LPARAM)ch1);
在讲这个的时候,还讲到了可以获得一个控件中选中的内容的消息-EM_GETSEL以及可以设置哪些内容被选中的EM_SETSEL消息.使用方法见MSDN.如:
SendDlgItemMessage(IDC_EDIT1,EM_SETSEL,1,3);
m_edit1.SetFocus();//这句的意义是因为如果该控件不是当前的FOCUS所在,那么即使显示了选中也会不可见.