17

我试图将我的窗口放在所有其他窗口之上。我是 C++ Win32 编程的新手。这是我的窗口初始化WinMain

hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

我以前使用过对话框,所以最上面的属性真的很容易使用。但是在这里,在一个窗口上我不知道如何设置它。我也希望能够触发它。有谁能够帮我?

4

4 回答 4

41
SetWindowPos(hwnd01, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);

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

第二个参数可以是:

  • HWND_BOTTOM

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

  • HWND_TOP

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

于 2015-07-01T19:39:39.123 回答
22

CreateWindowEx与(扩展的)窗口样式一起使用WS_EX_TOPMOST

免责声明:我接触那些东西已经有 15 年左右的时间了。

于 2013-02-20T20:18:24.063 回答
11

SetWindowPoshWndInsertAfter参数。通过HWND_TOPMOST应该做你想做的事。

此外,如果您想保持位置和大小不变,您可能需要传递SWP_NOMOVE | SWP_NOSIZE给参数。uFlags

于 2013-02-20T20:17:13.293 回答
3

SWP_NOMOVE 保留当前位置(忽略 X 和 Y 参数)。SWP_NOSIZE 保留当前大小(忽略 cx 和 cy 参数)。如果不设置这些标志,则应指定位置和大小,而不是传递 0、0、0、0

于 2015-08-04T15:59:07.297 回答