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ものです。

2番目のパラメーターは次のとおりです。

  • 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 に答える