ID2D1Factory::GetDesktopDpi メソッド

現在のデスクトップの DPI (1 インチあたりのドット数) を取得します。この値を更新するには、ReloadSystemMetrics を呼び出します。

構文

virtual void GetDesktopDpi(
  [out]  FLOAT *dpiX,
  [out]  FLOAT *dpiY
) = 0;

パラメーター

  • dpiX [out]
    FLOAT このメソッドが返されるときに、デスクトップの水平方向の DPI が格納されます。このパラメーターに記憶域を割り当てる必要があります。
  • dpiY [out]
    FLOAT このメソッドが返されるときに、デスクトップの垂直方向の DPI が格納されます。このパラメーターに記憶域を割り当てる必要があります。

戻り値

This は値を返しません。

解説

このメソッドは、ウィンドウのサイズを指定する場合など、物理ピクセル値を設定するときにシステム DPI を取得するために使用します。

次のコードでは、GetDesktopDpi メソッドを使用し、システム DPI を取得してウィンドウの初期サイズを設定します。

  
        // Because the CreateWindow function takes its size in pixels,
        // obtain the system DPI and use it to scale the window size.
        FLOAT dpiX, dpiY;

        // The factory returns the current system DPI. This is also the value it will use
        // to create its own windows.
        m_pDirect2dFactory->GetDesktopDpi(&dpiX, &dpiY);


        // Create the window.
        m_hwnd = CreateWindow(
            L"D2DDemoApp",
            L"Direct2D Demo App",
            WS_OVERLAPPEDWINDOW,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            static_cast<UINT>(ceil(640.f * dpiX / 96.f)),
            static_cast<UINT>(ceil(480.f * dpiY / 96.f)),
            NULL,
            NULL,
            HINST_THISCOMPONENT,
            this
            );

完全な例については、「四角形を描画する例」を参照してください。高 DPI シナリオの実現に関する詳細については、「高 DPI ディスプレイでアプリケーションが正しく表示されるようにする方法」を参照してください。

要件

クライアントの最小要件

Windows 7, Windows Vista SP2 および Windows Vista 用のプラットフォーム更新プログラム

サーバーの最小要件

Windows Server 2008 R2, Windows Server 2008 SP2 および Windows Server 2008 用のプラットフォーム更新プログラム

ヘッダー

D2d1.h

ライブラリ

D2d1.lib

DLL

D2d1.dll

参照

ID2D1Factory

高 DPI ディスプレイでアプリケーションが正しく表示されるようにする方法