来自“系统消息”或叫“四川-胎神”的大佬的话:
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长度。