VC获取控件文本的几种方法

一:GetDlgItem()->GetWindowText();
二:GetDlgItemText();
三:GetDlgItemInt();这个函数取到控件文本并将之转换成int返回给调用者.这对如使用EDIT控件获取整数非常方便,并且它可以有效处理有符号数.这个函数的调用稍有复杂,查阅MSDN!
四:\r\n将控件与成员变量相关联,比如要从EDIT控件获取整数,可以直接将EDIT控件与int类型的变量相关联,它会直接获取整数,并自动做相关的输入数据的\r\n类型检测,当然也可以关联CEdit型变量,再间接获取数据,用这种方法时要注意UpdateData()函数的适时调用!如果是CEdit控件,可以用\r\nCEdit中的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所在,那么即使显示了选中也会不可见.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值