Windowsの DPI設定 読み取り方

http://msdn.microsoft.com/en-us/library/dd464660.aspx#common_high_dpi_issues

Windows 7で実行すると、スライドバーが、はみだすという指摘を受けてしまいました。

どうやら、Windows 7の 文字を読みやすくする という設定が関係しているらしい。
文字を読みやすくする というのは、DPIの設定とのこと。


スライドバーの位置と大きさは、DPIの設定によって、自動的に変化しないんだね。。

DPIの数値によって、スライドバーの表示する位置と大きさを変えました。


DPI設定の読み取り方

// From CDPI::_Init()
HDC hdc = GetDC(NULL);
if (hdc)
{
_dpiX = GetDeviceCaps(hdc, LOGPIXELSX);
_dpiY = GetDeviceCaps(hdc, LOGPIXELSY);
ReleaseDC(NULL, hdc);
}

// Using CDPI example class
CDPI g_metrics;

int dpiX = g_metrics.GetDPIX();
int dpiY = g_metrics.GetDPIY();