我正试图让我的窗户保持在其他所有人之上。我是C ++ Win32编程的新手。这是我在WinMain
中的窗口初始化:
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
我之前使用过对话框,因此最顶层的属性非常易于使用。但是在这里,我不知道如何设置窗口。我也希望能够触发它。有人能帮助我吗?
答案 0 :(得分:24)
SetWindowPos(hwnd01, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
注意: SWP_NOMOVE | SWP_NOSIZE
用于忽略SetWindowPos
函数的第3,第4,第5,第6个参数。
第二个参数可以是:
HWND_BOTTOM
HWND_NOTOPMOST
(将窗口设置为普通窗口)
HWND_TOP
HWND_TOPMOST
(设置窗口始终位于顶部)
答案 1 :(得分:19)
将CreateWindowEx
与(扩展)窗口样式WS_EX_TOPMOST
一起使用。
免责声明:自从我触及那些东西以来,已经有15年左右了。
答案 2 :(得分:9)
请参阅SetWindowPos,hWndInsertAfter
参数。通过HWND_TOPMOST
应该做你想做的事。
另外,如果您想保持位置和大小不变,您可能希望将SWP_NOMOVE | SWP_NOSIZE
传递给uFlags
参数。
答案 3 :(得分:3)
2 Noitidart因为我无法直接评论
SWP_NOMOVE保留当前位置(忽略X和Y参数)。 SWP_NOSIZE保留当前大小(忽略cx和cy参数)。 如果你没有设置这些标志,你应该指定位置和大小而不是传递0,0,0,0