【发布时间】:2011-08-28 04:37:06
【问题描述】:
我必须在第三方库中隐藏弹出窗口。
我已经用SetWindowsHookEx 实现了 windows 钩子的东西,并且知道所有新创建的 hWnd(s)。我听HSHELL_WINDOWCREATED 回调并执行以下操作:
long style= GetWindowLong(hWnd, GWL_STYLE);
style &= ~(WS_VISIBLE); // this works - window become invisible
style |= WS_EX_TOOLWINDOW; // flags don't work - windows remains in taskbar
style &= ~(WS_EX_APPWINDOW);
SetWindowLong(hWnd, GWL_STYLE, style);
在任务栏中隐藏新创建的窗口我做错了什么?
【问题讨论】:
-
WS_EX_* 需要使用 GWL_EXSTYLE 获取/设置 - 而不是 GWL_STYLE。 (WS_EX_TOOLWINDOW 的值为 0x00000080,如果您将其用作 GWL_STYLE 而不是 _EXSTYLE,最终将修改通常不用于应用程序窗口的窗口样式部分,因此似乎是无操作的。低的部分Windows 样式的通常用于特定于控件的样式位 - 例如,对于按钮,这与 BS_BITMAP 具有相同的值。)