win10 에서는 바로 적용되는 hidpi의 적용과
win7에서는 최소한 로그아웃해야 하는 녀석이긴 하지만
아무튼 win32 에서도 dpi 변경시에 이벤트가 날아 온다는 거군..
다만 win32는 vs2012 이후에 적용이 되는 것 같은데
찾다보니 win7 대응으로 vs2010 이고
win8 이후에 대응을 위해 vs2012 출시 된 거 같으니
그런 지원 기능 차이가 생기는 걸려나?
그래서 vs2008이 vista 대응이라 개판인건가!?
(찾아보니. 비스타 지원용.. 그래서 그렇게 vs2008도 망작이었던 게냐...)
[링크 : https://en.wikipedia.org/wiki/Microsoft_Visual_Studio#2008]
case WM_DPICHANGED: { // Find the button and resize it HWND hWndButton = FindWindowEx(hWnd, NULL, NULL, NULL); if (hWndButton != NULL) { UpdateButtonLayoutForDpi(hWndButton); } } |
[링크 : https://msdn.microsoft.com/ko-kr/library/windows/desktop/dn312083(v=vs.85).aspx]
어? 지원범위로는 win7 에서는 해당 이벤트가 발생하지 않을테니..
초기 실행시 CreateWindow에서
Minimum supported client Windows 8.1 [desktop apps only]
이 놈도.. win8 이상..
GetDpiForMonitor()
[링크 : https://msdn.microsoft.com/ko-kr/library/windows/desktop/dn280510(v=vs.85).aspx]
이 놈은 win10 이상.. -_-
GetDpiForWindow()
[링크 : https://msdn.microsoft.com/en-us/library/windows/desktop/mt748624(v=vs.85).aspx]
[링크 : https://msdn.microsoft.com/en-us/library/windows/desktop/mt843498(v=vs.85).aspx] win32
[링크 : https://blogs.msdn.microsoft.com/vcblog/2010/03/11/mfc-applications-now-default-to-being-dpi-aware/]
[링크 : https://docs.microsoft.com/en-us/dotnet/framework/winforms/high-dpi-support-in-windows-forms] winform
[링크 : https://msdn.microsoft.com/ko-kr/library/windows/desktop/ee308410(v=vs.85).aspx] wpf
+
2017.11.13
GetDeviceCaps(hdcScreen, LOGPIXELSX); GetDeviceCaps(hdcScreen, LOGPIXELSY); |
[링크 : https://stackoverflow.com/questions/12652835/getting-actual-screen-dpi-ppi-under-windows]
int GetDeviceCaps( _In_ HDC hdc, _In_ int nIndex );
LOGPIXELSX Number of pixels per logical inch along the screen width. In a system with multiple display monitors, this value is the same for all monitors. LOGPIXELSY Number of pixels per logical inch along the screen height. In a system with multiple display monitors, this value is the same for all monitors.
Minimum supported client Windows 2000 Professional [desktop apps only] |
[링크 : https://msdn.microsoft.com/ko-kr/library/windows/desktop/dd144877(v=vs.85).aspx]
음.. win7 에서는 96dpi로 기본 설정된다고 하는데
변경하면 저게 다르게 나오려나?
[링크 : https://www.techrepublic.com/.../get-a-better-view-in-windows-7-by-adjusting-dpi-scaling/]