首页 /编程语言和算法/VB6/VBA/ASP
 VB6 大佬说的SelStart会在中文计算出错,解决办法
昨天 22:35

来自“系统消息”或叫“四川-胎神”的大佬的话:

SelStart是计算的ANSI长度,Len是计算的Unicode长度,这样会导致在有中文的时候位置计算错误。

正确做法是用SendMessage发送EM_SETSEL来设置位置(这个消息支持用-1表示末尾,而VB6是SetStart用-1会报错)。

全选文本框:

SendMessage Text1.hWnd, EM_SETSEL, 0, -1

文本框光标最后:

SendMessage Text1.hWnd, EM_SETSEL, -1, -1

EM_SETSEL消息可以用SendMessage的A版和W版来自己决定使用ANSI长度还是Unicode长度。


 
全部回复(0)
首页 | 电脑版 |