setWindowpos
を使用して複数のモニターにウィンドウを効果的に配置するには、システムディスプレイの構成と仮想画面の概念を微妙に理解する必要があります。
システムディスプレイ構成:
一次モニターの起源は(0、0)です。 セカンダリモニターには、負のX座標(プライマリの左)または正のX座標(プライマリの右)があります。
仮想画面:
これは、接続されたすべてのモニターを含む概念的なディスプレイです。その起源は、左端のモニターの左上隅です。 その幅はすべてのモニター幅の合計であり、その高さは最も高いモニターの高さです。システム表示情報の取得
スクリーンクラスを活用しています:
スクリーンクラスは、重要な画面情報を取得するための方法を提供します:
:特定のウィンドウ(hwnd)を含む画面を識別します。
:指定された長方形を含む画面の境界を返します。
:グラフィックスコンテキストの作成に役立つ画面のデバイス名を取得します。
ネイティブWin32関数を利用する:
これらの関数は、モニター識別のための代替方法を提供します:
:ウィンドウに関連付けられたモニターハンドルを返します。
:特定のポイントに対してモニターハンドルを返します。
:特定の長方形のモニターハンドルを返します。
を使用してWindowsを配置し、座標を監視します
を使用して特定のモニターにウィンドウを配置するには、setwindowpos に従います。
仮想画面座標を計算します:
プライマリモニターに対するモニター位置に基づいて、ウィンドウのx座標を調整します。 プライマリの左側のモニターの前のモニターの総幅を減算し、前のモニターの総幅と右のプライマリのプライマリを追加します。
use setWindowpos
: setWindowpos(hwnd、hwndinsertafter、x、y、cx、cy、swp_nozorder | swp_nosize | swp_showwindow);
システムのディスプレイの配置を慎重に検討し、これらの手法を使用することにより、
setWindowpos
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3