关于一个EXCEL导致的窗口激活的问题

akm404 2009-09-30 11:28:47
现象:窗口收到WM_ACTIVE消息但是收不到WM_CHAR消息,并且看上去窗口并没有处于激活状态(窗口最上面的状态栏还是处于灰色)。
步骤:
1.先建立一个测试窗口。
2.打开两个EXCEL(2003版本)都最小化。
3.点击测试窗口,测试窗口激活,并且响应键盘消息。
4.点击一个已经最小化的EXCEL使其被激活。这时测试窗口处于没有激活的状态。
5.最后,最小化刚点击的EXCEL(不要用窗口的最小化按钮(-),而是点击这个EXCEL在底下任务栏中的任务栏按钮),当然此时这个EXCEL处于没有激活的状态。而测试窗口这时收到WM_ACTIVE消息,但是点击键盘,收不到WM_CHAR消息。而且看上去测试窗口也没有激活(窗口最上面的状态栏还是处于灰色)更要命的是当我此时再激活别的窗口时,测试窗口并没有受到取消激活的消息,就是说它还是认为自己处于激活状态(如果应用程序是用是否激活来判断是否播放音乐的话,那么就会出现窗口没有激活还放着音乐的情况)。
如果是用两个WORD 或是别的WINDOWS窗口来测试,执行上述步骤。在第5步时,测试窗口总是被激活的而且看上去也是被激活的,也是收到键盘消息的。
我的问题是:上述测试窗口收到WM_ACTIVE消息而收不到WM_CHAR(鼠标移动也收不到)等消息,这种情况是正常的呢还是EXCEL本身导致的BUG?如果是WINDOWS本身的一种机制,那么用什么办法可以判断当前窗口是处于这种假激活的状态。
...全文
147 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
akm404 2009-09-30
  • 打赏
  • 举报
回复
自己先顶一下,希望有大虾来帮忙

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧