MFC小知识:CEdit::GetSel函数的使用

CEdit::GetSel函数是CEdit类的成员函数,它的功能是返回编辑框中光标选中区域的开始和结束位置,如果没有选取区域,则返回的就是光标位置(开始与结束位置相同)。这个函数可以通过CEdit类对象或对象指针调用,它的使用方式有两种:

1、使用DWORD变量接收函数返回值:

CEdit myEdit; //声明CEdit对象

DWORD selPos = myEdit.GetSel(); //利用DWORD变量接收GetSel的返回值

int nStart = LOWORD(selPos); //利用宏LOWORD解析返回值,获得开始位置

int nEnd = HIWORD(selPos); //利用宏HIWORD解析返回值,获得开始位置

2、将接收变量作为参数

CEdit myEdit; //声明CEdit对象

int nStart, nEnd; //声明接收选取区域的变量

myEdit.GetSel(nStart, nEnd); //将接收变量作为参数传入GetSel

3、说明

a. 以上两种函数调用方式的区别在于最终接收到的位置变量的大小。使用DWORD接收返回值再解析成位置,位置的大小不能超过short类型的表示范围,一旦超出,则不能收到正确的无返回值。因此对于编辑框中的字符数超过short表示范围的情形,应使用第二种方式得到编辑框中选取区域的位置。

b. 当只有编辑框ID时,可以通过GetDlgItem函数获得编辑框的指针,再通过指针调用GetSel函数。代码是:CEdit* pEdit = (CEdit*)CWnd::GetDlgItem(编辑框ID)。

c. 若想编辑框中能容纳超过short类型最大值的字符个数,还需要对编辑框进行一下设置,否则内容不能全部拷贝进去。格式为:myEdit.SetLimitText(UINT_MAX),UNIT_MAX是一个宏。

相关推荐
C++ 老炮儿的技术栈2 小时前
MFC CPtrArray的用法
开发语言·数据结构·c++·算法·mfc·c
神仙别闹6 天前
基于C++ MFC 实现的智慧公交系统
开发语言·c++·mfc
xcl09258 天前
商超智能运营实战:数据驱动提升门店效率与体验指南
java·mfc·宠物
神仙别闹11 天前
基于C++ MFC RSA 实现加密程序
开发语言·c++·mfc
xcl092511 天前
宠物救助领养系统实战开发指南:从需求分析到部署上线
java·mfc·宠物
张张的快乐时光呀!14 天前
记录使用 MFC 打开文件对话框读取一张图片并做简单的灰度转换算法简单学习过程
c++·mfc
小小龙学IT14 天前
GLM 开源图形学数学库深度解析:从向量、矩阵到四元数的完整实战
c++·矩阵·开源·mfc
鸿芯微控科技14 天前
MFC温度补偿怎么验证?气体温度、密度变化与Python分析
mfc·质量流量控制器·mfc温度补偿·流量校准·气体流量测试
张张的快乐时光呀!14 天前
MFC添加类向导并实现响应
c++·mfc
鸿芯微控科技17 天前
MFC通信数据跳变怎么排查?RS485接线、丢帧与流量反馈验证
python·mfc·rs485·质量流量控制器·通信异常