[API]关于代替RichTextBox控件的selStart属性的API函数不支持分析双字节的问题,静侯高手解答!

lshdic 2004-02-28 06:11:50
本人在用VB6开发文本编辑器时,为了顾全功能,使用了RichTextBox控件

但开发末期发现其selstart、sellength两个属性的使用效率“极差”!当编辑器有50000-100000字符时,如果光标靠文档末尾在使用selstart、sellength这两个属性巨慢+巨占用CPU

上次经过“rainstormmaster(暴风雨 v2.0)”的解答后,得知用以下API代码可以取代selstart属性,获得当前光标前有多少字符(光标位于第几个字符)

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_USER As Long = &H400
Private Const EM_EXGETSEL As Long = (WM_USER + 52)
Private Const EM_EXSETSEL As Long = (WM_USER + 55)
Private Const EM_GETSELTEXT As Long = (WM_USER + 62)
Private Const EM_GETSEL As Long = &HB0
Private Const EM_SETSEL As Long = &HB1
Private Type Range
cpMin As Long
cpMax As Long
End Type

Private Sub Command1_Click()
Dim cr As Range
Call SendMessage(RichTextBox1.hwnd, EM_EXGETSEL, 0, cr)
Dim start As Long, ende As Long, length As Long
start=cr.cpMin
msgbox "当前光标位于" & start
End Sub

但我发现,得到的这个数字是区分“中文或他国双字节符号、标准英文键盘符号”的,也就是说一个中文它会以为是2个字,这使我大伤脑筋,做了1个星期的测试也没能得到真实的光标位置,我想到了用strconv等转换但还是不行

只好在次请教大家了,如何用新方法或改编“rainstormmaster(暴风雨 v2.0)”的方法实现得到当前光标的真实位置?(不区分中英文)
...全文
76 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复

还没有回复,快来抢沙发~

相关推荐
基于java的企业人事管理系统设计--软件工程课程设计(含源码与论文设计).rar 1 引言 4 1.1 课程设计目标 4 1.2 编程工具(编程环境)介绍 4 1.3 实施时间及主要实施步骤 4 2 需求分析 5 3 系统总体设计 6 4 数据库设计 6 5 主要功能模块的设计与实现 10 5.1 功能模块1详细设计(综合查询员工信息)..........................................................10 5.1.1 详细设计.......................................................................................................10 5.1.2 算法流程........................................................................................................15 5.1.3 界面设计及测试结果.....................................................................................15 6 调试分析 15 7 用户手册 16 8 测试结果 17 8.1 员工信息的添加...................................................................................................17 8.2 员工信息的修改...................................................................................................17 8.3 员工信息的删除...................................................................................................18 8.4 员工信息的综合查询...........................................................................................18 8.5 员工信息按性别统计的结果................................................................................19 8.6 员工信息按状态统计的结果...............................................................................19 8.7 员工信息按职称统计的结果................................................................................20 9 结论 20 10 参考文献 20
发帖
VB基础类
创建于2007-09-28

7492

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2004-02-28 06:11
社区公告
暂无公告