SetWindowpos
を使用して複数のモニターにウィンドウを効果的に配置するには、システムディスプレイ構成と仮想画面の概念を微妙に理解する必要があります。
SetWindowPos
システムディスプレイと仮想画面の理解
プライマリモニターの起源は(0、0)です。 セカンダリモニターには、負のX座標(プライマリの左)または正のX座標(プライマリの右)があります。
仮想画面:
これは、接続されたすべてのモニターを含む概念的なディスプレイです。その起源は、左端のモニターの左上隅です。 その幅はすべてのモニター幅の合計であり、その高さは最も高いモニターの高さです。 システムディスプレイ情報の取得
クラスを活用してください:クラスは、重要な画面情報を取得するための方法を提供します:Screen
:特定のウィンドウ(hwnd)を含む画面を識別します
Screen
Screen.FromHandle(hwnd)
ネイティブWin32関数を使用するScreen.GetBounds(rect)
これらの関数は、モニター識別のための代替方法を提供します:Screen.DeviceName
:指定されたポイントのモニターハンドルを返します。
:指定された長方形のモニターハンドルを返します。
MonitorFromWindow
を使用してWindowsを配置し、座標を監視しますMonitorFromPoint
を使用して特定のモニターにウィンドウを配置するには、次の手順に従ってください。
MonitorFromRect
SetWindowPos
SetWindowPos
仮想画面座標を計算します:
使用:hMonitor
<code class="language-c++">SetWindowPos(hwnd, hWndInsertAfter, x, y, cx, cy, SWP_NOZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);</code>
システムのディスプレイの配置を慎重に検討し、これらの手法を使用することにより、マルチモニターセットアップ内の任意のモニターにWindowsを正確に配置できます。
以上がSetWindowposを使用して、複数のモニターにWindowsを正確に配置するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。