MFC 怎么将RichEdit中的光标定位在指定的行和列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC 怎么将RichEdit中的光标定位在指定的行和列相关的知识,希望对你有一定的参考价值。
俺没有好的办法只会循环定位行数个数的"\\n"的位置n_index,然后再加上列数i
然后再
GetRichEditCtrl().SetSel(n_index+i,n_index+i); 参考技术A 你讲RichEdit封装到一个类上,可以新建一个,在里面添加消息函数,OnLBUTTONDOWN(),在函数里面用SetCaretPos();试试吧,
编辑控件 MFC 中光标位置更改时是不是有通知代码?
【中文标题】编辑控件 MFC 中光标位置更改时是不是有通知代码?【英文标题】:Is there a notification code when cursor position changes in Edit Control MFC?编辑控件 MFC 中光标位置更改时是否有通知代码? 【发布时间】:2019-09-19 19:06:54 【问题描述】:在编辑控件 MFC 中光标位置发生变化时是否发送通知代码?我想为用户显示光标(字符)位置
【问题讨论】:
RICHEDIT 控件发送EN_SELCHANGE,如果有帮助的话。 【参考方案1】:当插入符号位置发生变化时,Edit 控件本身不会发送EN_...
通知。
但是,您可以使用 SetWinEventHook()
为您的应用的进程 ID 和 UI 线程 ID 注册 EVENT_OBJECT_LOCATIONCHANGE
通知。
EVENT_OBJECT_LOCATIONCHANGE 0x800B
对象的位置、形状或大小发生了变化。系统为以下用户界面元素发送此事件:caret 和窗口对象。服务器应用程序为其可访问对象发送此事件。
然后您可以让您的回调函数通过检查提供的hwnd
是否是您的编辑控件以及提供的idObject
是否为OBJID_CARET
来过滤通知。
OBJID_CARET
窗口中的文本插入栏(插入符号)。
检测到后,您可以通过向编辑控件发送EM_GETSEL
消息来获取实际的插入符号位置。
获取编辑控件中当前选择的开始和结束字符位置(在 TCHAR 中)。
或者,如果您使用的是CEdit
类,请使用它的GetSel()
方法。
调用此函数以获取编辑控件中当前选择(如果有)的开始和结束字符位置,使用返回值或参数。
【讨论】:
谢谢。我试试看。以上是关于MFC 怎么将RichEdit中的光标定位在指定的行和列的主要内容,如果未能解决你的问题,请参考以下文章