2011年3月31日 星期四

如何撰寫高DPI的視窗程式

當客戶年紀稍長,都會自行把WINDOWS的DPI提高
通常是提高到125%,雖然我們的建議是由我們來處理字形的放大縮小
會比較妥當,但也沒法滿足客戶喜歡自行處理的樂趣

參考資料如下:
Writing High-DPI Win32 Applications
http://msdn.microsoft.com/en-us/library/dd464660%28VS.85%29.aspx#dpi_virtualization
 
DPI Virtualization

http://codingjames.blogspot.com/2010/02/dpi-virtualization.html

有用到RegistryKey時候要
using Microsoft.Win32;

bool IsDpiVirtualization()


{

// open the key of Desktop Window Manager

RegistryKey k = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\DWM");

if (k != null)

{

// get the value if it exists

if ((int)k.GetValue("UseDpiScaling", 0) == 1)

{

k.Close();

return true;

}



k.Close();

}

return false;
}

沒有留言: