MFC SetSel和GetSel的使用

https://blog.csdn.net/qq229596421/article/details/58617797

通过实际的界面程序了解MFC的SetSel函数和GetSel函数的参数应该怎样传递。

 

函数参数主要如下:

SetSel(int nStartChar, int nEndChar, BOOL bNoScroll);

GetSel(int& nStartChar, int& nEndChar);

 

nStartChar表示起始的字符位置

nEndChar表示结束的字符位置

bNoScroll为TRUE表示在选中的时候不会滚动滚动条,为FALSE表示会随光标位置改变而滚动滚动条。

 

先看SetSel:

(1)、调用SetSel函数并设置nStartChar为-1,nEndChar为-1时,-1表示最后一个字符。如图,光标显示在最后一个字符后面。

 

(2)、调用SetSel函数并设置nStartChar为0,nEndChar为-1时,表示选中第1个到最后一个字符。如图,字符串被全选。

 

(3)、调用SetSel函数并设置nStartChar为1,nEndChar为-1时,表示选中第2个到最后一个字符。如图,从第2个字符串到最后一个字符串被选中。

 

(4)、调用SetSel函数并设置nStartChar为2,nEndChar为-1时,表示选中第3个到最后一个字符。如图,从第3个字符串到最后一个字符串被选中。

 

(5)、调用SetSel函数并设置nStartChar为9,nEndChar为-1时,表示选中第10个到最后一个字符。如图,从第10个字符串到最后一个字符串被选中。

 

(6)、调用SetSel函数并设置nStartChar为-1,nEndChar为0时,表示光标跳到最后一个字符。如图,光标被设置在最后一个字符后面。

 

 

(7)、调用SetSel函数并设置nStartChar为-1,nEndChar为1时,表示光标跳到最后一个字符。如图,光标被设置在最后一个字符后面。

 

(8)、调用SetSel函数并设置nStartChar为-1,nEndChar为4时,同样表示光标跳到最后一个字符。如图,光标被设置在最后一个字符后面。

 

(9)、调用SetSel函数并设置nStartChar为2,nEndChar为15时,表示选中第3个到第15个字符被选中(第一行有换行符“\r\n”,算2个字符)。如图所示。

 

(10)、调用SetSel函数并设置nStartChar为8,nEndChar为3时,表示选中第4个到第8个字符被选中。如图所示。

从以上传参情况来看,可以知道:

1、如果nStartChar设置为-1,那么不管nEndChar设置为多少,光标都会被移到最后;

2、如果nStart不为-1,则nStartChar和nEndChar之间的字符都会被选中(不管nStartChar和nEndChar的大小如何)。

 

再看GetSel:

(1)、将光标点在最开始的位置,调用GetSel则nStartChar和nEndChar均为0

 

 

(10)、选中第一个字符前到第十个字符后之间的字符,调用GetSel,nStartChar为0,nEndChar为10

 

(2)、选中第二个字符前到第九个字符后之间的字符,调用GetSel,nStartChar为1,nEndChar为9

 

 

(3)、将光标点在第十个字符后面,调用GetSel则nStartChar和nEndChar均为10

 

 

(4)、选中第五个字符前到第二行七个字符后之间的字符,调用GetSel,nStartChar为4,nEndChar为19(第一行最后有“\r\n”换行符,2个字符)

 

 

从以上传参情况来看,可以知道:

1、如果光标未选中块,则nStartChar和nEndChar获取到的值是相同的;

2、如果选中块,则nStartChar的值为选中块第一个字符所在的位置,nEndChar为选中块最后一个字符所在的位置

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值