我需要处理在编辑控件(而非richedit控件)中更改插入符号pos的事件。
我知道如何处理编辑中更改文本的事件,但我不知道如何处理编辑控件中更改插入符位置的事件。
我希望有人可以帮助我。谢谢大家。
答案 0 :(得分:1)
您可以通过发送 EM_SETSEL
消息在编辑控件中设置插入符号的位置,该消息从所需位置选择到相同位置:
SendMessage(hWnd, EM_SETSEL, pos, pos);
获取插入符号的位置需要发送 EM_GETSEL
消息。请注意,如果开始和结束位于同一位置,您就知道了插入符的精确位置。如果存在差异,则表示选择了文本,您可以将最后一个作为位置。
没有特定事件可以仅跟踪插入/选择更改。在事件循环中,您需要捕获按键和鼠标事件,并检查它们是否更改了位置。但是,只有当您需要它而不是主动跟踪它时,您才能阅读插入位置吗?
答案 1 :(得分:1)
一旦我通过继承编辑控件(finally
)并在可能有可能移动插入符号的消息上向父窗口发送消息,就可以在状态栏上显示行号。
SetWindowLongPtr