setwindowpos
を使用します
setWindowpositionコードフラグメントは、ウィンドウの位置をメインディスプレイに設定するだけです。
ディスプレイと仮想画面の表示を理解する
マルチディスプレイ環境では、ディスプレイには特定のレイアウトと座標があります。
メイン画面:
左上隅は(0、0)ディスプレイにあります。
- 左のディスプレイ:画面の元のポイントは、フロント画面幅の合計を引いた画面のメイン画面です。
右ディスプレイ:- 正のx座標があります。画面の元のポイントは、画面のメイン画面と、メイン画面を含むフロント画面幅の合計です。
画面座標の計算
特定のディスプレイにウィンドウ位置を設定するには、画面レイアウトに基づいて正しいX座標を計算する必要があります。
画面オブジェクトを使用してください
.NET画面クラスは、ウィンドウによって現在表示されている画面を決定するためのいくつかの方法を提供しました:
screen.fromControl(Control) screen.fromhandle(ウィンドウハンドル)
screen.frompoint(point)
screen.fromrctangle(rectangle)
-
これらのメソッドは、指定された要素の最大部分を含む画面オブジェクトを返します。
hmonitorのハンドルを取得-
.NETリファレンスソースディスプレイでは、オブジェクトの
gethashCode()- メソッドを呼び出すことにより、画面オブジェクトのhmonitorハンドルを取得できます。または、MonitorfromWindowやMonitorFrompointなどのネイティブWin32関数を使用して、Hmonitorハンドルを取得することもできます。
solution
-
ディスプレイレイアウトと画面座標の理解に基づいて、次のようにsetWindowpositionメソッドを変更できます。
この更新されたメソッドは、モニターインデックスを追加のパラメーターとして使用し、画面レイアウトに基づいて対応するX座標を計算します。
以上がSetWindowposを使用して複数のモニターにWindowsを正しく配置するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。