【问题标题】:Is there any event to capture focus on a button control in mfc?是否有任何事件可以捕获 mfc 中按钮控件的焦点?
【发布时间】:2015-03-19 09:57:51
【问题描述】:

现在我基本上是在一个按钮上加载位图,四种状态如下:

案例:

  1. 当我最初启动我的应用程序时,按钮正在加载一个位图。
  2. 当鼠标悬停时,我正在加载另一个位图。
  3. 同样在按钮点击时加载位图。
  4. 最后第四种状态是当我单击选项卡时,焦点不断从一个控件变为另一个控件,并带有矩形虚线。

case4 中,当按钮控件获得矩形焦点时,我想再加载一个位图,如果按钮失去焦点,我应该加载另一个位图。

我用谷歌搜索了很长时间,但我没有得到任何解决这个问题的线索。

最初,当我运行我的应用程序时,如下所示:

当我单击Tab 时,矩形选择移动到按钮上。现在,当按钮控件接收到矩形焦点时,我必须加载一个位图,当按钮离开焦点时,我需要加载另一个位图。

Tab之后点击

至于鼠标悬停,我们有 BCN_HOTITEMCHANGE 事件被触发,我们可以处理鼠标进入和离开。与此类似,我们有没有在接收到失去焦点时触发?

谁能帮我解决这个问题。

【问题讨论】:

    标签: winapi visual-c++ mfc


    【解决方案1】:

    说实话,我不完全确定您要做什么。但如果按钮设置了BS_NOTIFY 窗口样式,则其父窗口将在按钮获得焦点时收到WM_COMMAND 消息,HIWORD 设置为BN_SETFOCUS,在失去焦点时收到BN_KILLFOCUS

    【讨论】:

    • 非常感谢我忘了给按钮添加 BS_NOTIFY 样式。现在,它正在工作。
    猜你喜欢
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多