将窗口设置为最顶层

Vic*_*tor 15 c++ winapi window topmost

我试图让我的窗口保持在所有其他人之上.我是C++ Win32编程的新手.这是我的窗口初始化WinMain:

hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
Run Code Online (Sandbox Code Playgroud)

我之前使用过对话框,所以最顶层的属性非常容易使用.但是在这里,我不知道如何设置窗口.我也希望能够触发它.有谁能够帮我?

Ami*_*mir 25

SetWindowPos(hwnd01, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
Run Code Online (Sandbox Code Playgroud)

注意: SWP_NOMOVE | SWP_NOSIZE用于忽略SetWindowPos函数的第3,第4,第5,第6个参数.

第二个参数可以是:

  • HWND_BOTTOM

  • HWND_NOTOPMOST (将窗口设置为普通窗口)

  • HWND_TOP

  • HWND_TOPMOST (设置窗口始终在顶部)


Che*_*Alf 19

使用CreateWindowEx与(扩展)窗口样式WS_EX_TOPMOST.

免责声明:自从我触及那些东西以来,它已经大约15年了.


Hay*_*tuk 9

请参阅SetWindowPos,hWndInsertAfter参数.传球HWND_TOPMOST应该做你想要的.

另外,如果要保持位置和大小不变,可能需要传递SWP_NOMOVE | SWP_NOSIZEuFlags参数.