ホームページ >バックエンド開発 >C++ >Windows ディスプレイのスケーリング設定をプログラムで取得するにはどうすればよいですか?

Windows ディスプレイのスケーリング設定をプログラムで取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-15 10:43:49743ブラウズ

How Can I Programmatically Retrieve Windows Display Scaling Settings?

Windows のディスプレイ設定をプログラムによって決定する

Windows 7 以降では、ユーザーはコントロール パネルでテキスト サイズなどの表示パラメータを調整できます。これらの設定にアクセスすると、ユーザーの設定に基づいてアプリケーションの機能を有効または無効にするのに役立ちます。

これらの表示設定をプログラムで取得できますか?

Surface Pro デバイスでは、ズーム レベルに関係なく、graphics.DpiX プロパティと DeviceCap.LOGPIXELSX プロパティの両方が一貫した値 96 を返すことがわかりました。スケーリング係数を正確に計算するには、別のアプローチが必要です。

gdi32.dllGetDeviceCaps関数を活用するのが効果的です。論理的および物理的な画面の高さを測定することで、画面のスケーリング係数を決定できます。

<code class="language-csharp">[DllImport("gdi32.dll")]
static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
public enum DeviceCap
{
    VERTRES = 10,
    DESKTOPVERTRES = 117,
}

private float getScalingFactor()
{
    using Graphics g = Graphics.FromHwnd(IntPtr.Zero);
    IntPtr desktop = g.GetHdc();
    int LogicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES);
    int PhysicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES); 

    g.ReleaseHdc(desktop);

    float ScreenScalingFactor = (float)PhysicalScreenHeight / (float)LogicalScreenHeight;

    return ScreenScalingFactor;
}</code>

この関数を呼び出すことで、画面のスケーリング係数を正確に取得でき、それに応じてアプリケーションの動作を調整できます。

以上がWindows ディスプレイのスケーリング設定をプログラムで取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。