查看: 8  |  回复: 0
  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长度。


您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2025 MaNongKu.com