Per Monitor V2

提供: RAD Studio
移動先: 案内検索

VCL への移動


Per Monitor V2 サポートには、IDE プロジェクト オプションでの宣言に対するサポートが含まれており、適切な Windows マニフェストの構成が設定されるようになっています。

[プロジェクト|オプション...|アプリケーション|マニフェスト]に移動して、オプション[Per Monitor V2]を有効にします。

PerMonitorV2 Manifest.png

VCL ライブラリのコア部分では、Per Monitor V2 のサポートには、コア クラスへの変更、多くのコントロール(プラットフォームやカスタム)、その他のスタイルのためのサポートが含まれています。

高次のレベルでは、この機能をサポートするために 10.3 の VCL.Classes ユニットでは次の変更が導入されています:

  • GetSystemMetricsForWindow グローバル関数は、新しい GetSystemMetricsForDPI があればそこへの、もしくは従来の GetSystemMetrics への呼び出しをラッピングしています。これには、API に渡されるハンドル パラメータがあります。Per Monitor V2 をサポートしたい場合には、従来の WinApi.GetSystemMetrics 関数の代わりに、この新しい関数を使用することを推奨します。
  • TControl.GetSystemMetrics (nIndex: Integer) メソッドは、新しい GetSystemMetricsForWindow グローバル関数を呼び出すコントロールに対する、システム測定値を返します。
  • TControl.GetCurrentPPI は、現行のモニターによってコントロールの DPI を返し、TControl.CurrentPPI は、この関数にマップされる読み取り専用プロパティです。

RAD Studio 10.3 には、VCL への大きな更新と、新しい GetSystemMetricsForWindow に適合するためのスタイリングのサポートを含んでおり、コンポーネント ライタには、この新しい Microsoft DPI モデルをサポートするために同様の作業をすることを推奨します。この変更ではまた、フォームのコードに影響がありますが、大きく広がる可能性は低いです。コード、または使用しているコンポーネントのコードが Per Monitor V2 で利用しない場合、プロジェクトのマニフェスト ファイルで、この機能を無効にすることを推奨します。

メモ: Per Monitor V2 サポートでは、少なくとも Windows 10 Creator のアップデート(1703)が必要です。以前のバージョンの Windows 10 や、それより前の Windows では、新しいメソッドは標準動作および API 呼出しに戻されます(コード内に専用のランタイム チェックがあります)。
警告: Per Monitor V2(および、Windows における数多くのほかの高 DPI 機能)には、MDI 子ウィンドウ モデルをサポートしていません。Microsoft は、MDI に対して報告された不具合への対処を中止しており、弊社は、異なるマルチウィンドウ モデル(マルチ フローティング ウィンドウ、ドッキング ペイン、タブ ウィンドウ、など)への移行を推奨します。