请教 windows 的 WM_NCACTIVATE 和 WM_NCACTIVATE 消息
处理 WM_NCACTIVATE 和 WM_NCACTIVATE 消息遇到问题。
前置条件
--------
frameless窗口
具体:
------
需求
一、某个时候,客户会在任务栏单击,预期窗口将最小化到任务栏。
二、过一段时间,客户又在任务栏点击,预期窗口将恢复正常大小。
我处理的过程
由于是frameless窗口,任务栏单击事件要自己处理(win xp,
frameless窗口单击任务栏并不最小化)。
于是通过 WM_ACTIVATE 和 WM_NCACTIVATE 消息实现。
问题
等我做完了却发现:
用户点击此任务栏图标会最小化(满足需求一)。
但用户点击其它任务栏窗口时,
原来的窗口会先把自己最小化(预期应该是被别的窗口在前面挡
住而不是最小化),然后别的窗口(属于别的程序)才会被激活(
不满足需求二)。
附
后来查找问题,发现用frameless窗口与普通窗口对比,
WM_ACTIVATE 和 WM_NCACTIVATE 完全一样,但是
frameless窗口却表现如问题所述,所以很疑惑。
不改前置条件的情况下,满足需求。通过 WM_ACTIVATE 和 WM_NCACTIVATE 消息实现的路线不对还是……