MFC CEdit 控件在对话框中获取焦点后,会全选,使用SetSel函数也不好使,在OnFocus, OnFocusEdit1等好几个地方调用都不好使。网上找的一些方法也感觉很别扭。
因此我使用一种比较取巧的方式,PostMessage(EM_SETSEL, caretPos, caretPos); 使用 PostMessage来发送 EM_SETSEL消息,我估计SetSel函数调用的是 SendMessage,SendMessage是不进消息队列的,在WINDOW一系列操作下,最后还是会被后续的其它操作全选。而使用PostMessage发送的消息,会进入消息队列,在Window一系列操作过后,再从消息队列中处理此消息,因此能保证此消息在最后面处理,所以会有效果,
原创,希望能帮助有需要的人.
本文详细介绍了在对话框中使用MFCCEdit控件时遇到全选问题的解决方案,通过PostMessage发送EM_SETSEL消息避免全选现象,提供了一种有效的解决思路。
2006

被折叠的 条评论
为什么被折叠?



