EN_SETFOCUS或WM_SETFOCUS上的SetSel不起作用

时间:2010-12-23 09:37:10

标签: winapi mfc

我在Winapi / MFC中遇到了下一个神秘的东西,我有一个编辑框,我必须在Tab,Lclick,Rclick,Mclick等上选择内容。

一种明显的路径是处理SETFOCUS消息并调用SetSel(0,-1),它应该选择所有文本。但它不起作用!

怎么了?我试过谷歌搜索,每个人似乎都覆盖Lclilks或在父窗口中处理SetSel,但从封装的角度来看这是错误的,也是多次点击(用户希望在文本中间插入一些东西)会破坏,依此类推。 / p>

为什么我的方法不起作用,我尝试了10种不同的方法,尝试捕获所有可能的焦点消息,在MSDN上查找信息,但没有任何工作按预期进行。

另外,我需要在焦点上重新创建carret,这似乎也不起作用。

SETFOCUS消息被困了。如果我添加__asm int 3,它每次都会中断。

这似乎是创造的carret和setsel吞噬了它。

1 个答案:

答案 0 :(得分:3)

在处理EM_SETSEL时将修改发布到WM_SETFOCUS。可能在焦点切换后处理鼠标输入。或者发布用户消息并在接收时创建插入符然后进行选择。