使窗口成为桌面的一部分

时间:2015-01-05 16:06:58

标签: winapi user-interface desktop

我想用

创建一个窗口
CreateWindowEx(WS_EX_TOOLWINDOW | WS_EX_LAYERED, wc.lpszClassName, 0, WS_POPUP | WS_VISIBLE | WS_SYSMENU, ...);

桌面的一部分(我知道这可能是不可能的,但我希望尽可能接近这种感觉)。

因此,我需要在 WIN + D 被点击时(或点击屏幕Show desktop按钮的右下角)时,窗口< em>不应隐藏。

如何在使用 WIN + D 显示桌面时阻止隐藏窗口?

enter image description here

注意:我最初认为可以通过防止窗口最小化来实现 (https://stackoverflow.com/questions/27781352/prevent-window-to-be-minimized?noredirect=1#comment43975051_27781352)但正如一些用户所指出的那样 这是另一个问题。

1 个答案:

答案 0 :(得分:0)

可以通过执行以下操作使窗口成为桌面的一部分:

HWND hwndOwner = GetWindow(GetWindow(GetTopWindow(0), GW_HWNDLAST), GW_CHILD);
SetWindowLong(hwndMain, GWL_HWNDPARENT, (LONG) hwndOwner);

另外尝试另一个测试:http://files.rsdn.ru/42164/quasi_owner.zip(exe +源代码,在Win7-x86上测试)。


第一版(不是真的有效):

移除WS_MINIMIZEBOX&amp;添加WS_EX_TOPMOST