关于一个EXCEL导致的窗口激活的问题
现象:窗口收到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本身的一种机制,那么用什么办法可以判断当前窗口是处于这种假激活的状态。