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 |