是否有任何事件可以捕获 mfc 中按钮控件的焦点?

Is there any event to capture focus on a button control in mfc?

基本上现在我在按钮上加载位图有四种状态如下:

案例:

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

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

我在谷歌上搜索了很长时间,但没有找到解决这个问题的线索。

最初,当我 运行 我的申请如下:

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

Tab 之后点击

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

谁能帮我解决这个问题。

老实说,我不太确定您要做什么。但是,如果按钮设置了 BS_NOTIFY window 样式,当按钮获得焦点时,其父级 window 将收到一条 WM_COMMAND 消息,其中 HIWORD 设置为 BN_SETFOCUS , 和 BN_KILLFOCUS 当它失去它时。