我在CMFCToolBar上有一个CMFCToolBarComboBoxButton。我希望每当CMFCToolBarComboBoxButton获得焦点时,它将选择整个文本 实现它的最优雅方式是什么?
非常感谢!
阿迪巴尔达
答案 0 :(得分:0)
不确定最优雅的方式是什么,但我想最常见的方法是创建派生类并重写OnSetFocus(未检查确切的方法名称),并在包含的编辑控件上调用SetCurSel()。 WM_FOCUS只发送给控件,并且没有任何通知消息,因此除了做一些会使控件处理事件的事情之外你没有太多的选择 - 它会反映到其他地方,或者只是实现行为本身。 (我想从理论上讲,可以通过截取消息来解决各种问题,但这肯定不是最优雅的方式......)
答案 1 :(得分:0)
这应该是标准编辑控件的默认行为。如果不是,则其他东西明确地删除该行为。也许你可以找到一些你可以在组合框按钮上设置的标志?
如果不是:继承编辑控件,处理WM_GETDLGCODE消息。返回与DLGC_HASSETSEL
ORed的值。如果控件设置了此标志,则Windows将自动选择焦点上的所有文本。