Per Monitor V2
VCL への移動
Per Monitor V2 サポートには、IDE プロジェクト オプションでの宣言に対するサポートが含まれており、適切な Windows マニフェストの構成が設定されるようになっています。
[プロジェクト|オプション...|アプリケーション|マニフェスト]に移動して、オプション[Per Monitor V2]を有効にします。
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 10 Creator のアップデート(1703)が必要です。 以前のバージョンの Windows 10 や、それより前の Windows では、新しいメソッドは標準動作および API 呼出しに戻されます(コード内に専用のランタイム チェックがあります)。