Windows SDK 8.1 미만 코드. 그 이상으로 필요시 https://learn.microsoft.com/ko-kr/windows/win32/api/winuser/nf-winuser-getdpiforwindow 해당 함수 사용.
GetDpiForWindow function (winuser.h) - Win32 apps
Returns the dots per inch (dpi) value for the specified window.
learn.microsoft.com
void CTestDlg::InitializeDPIScale(HWND hwnd)
{
CDC* pDC = GetDC();
m_fDPIScaleX = GetDeviceCaps(pDC->GetSafeHdc(), LOGPIXELSX) / 96.0f;
m_fDPIScaleY = GetDeviceCaps(pDC->GetSafeHdc(), LOGPIXELSY) / 96.0f;
if (m_fDPIScaleX == 0.96f)
{
m_fDPIPercent = 1.0f;
}
else if (m_fDPIScaleX == 1.20f) // 125%
{
m_fDPIPercent = 1.25f;
}
else if (m_fDPIScaleX == 1.44f) // 150%
{
m_fDPIPercent = 1.50f;
}
else if (m_fDPIScaleX == 1.68f) // 175%
{
m_fDPIPercent = 1.75f;
}
else if (m_fDPIScaleX == 1.92f) // 200%
{
m_fDPIPercent = 2.00f;
}
else if (m_fDPIScaleX == 2.16f) // 225%
{
m_fDPIPercent = 2.25f;
}
else if (m_fDPIScaleX == 2.40f) // 250%
{
m_fDPIPercent = 2.50f;
}
else if (m_fDPIScaleX == 2.88f) // 300%
{
m_fDPIPercent = 3.00f;
}
else if (m_fDPIScaleX == 3.36f) // 350%
{
m_fDPIPercent = 3.50f;
}
}
'MFC' 카테고리의 다른 글
[MFC] 현재 실행중인 프로그램 경로 구하기 (0) | 2023.01.12 |
---|---|
[MFC] Exception handle, try catch, event viewer (0) | 2022.11.04 |
[MFC] C# 클래스 인스턴스화 하기 (0) | 2021.07.13 |
[MFC] C# Windows Forms 컨트롤 라이브러리와 SendMessage 주고 받기 (C++ ↔ C#) (0) | 2021.03.15 |
[MFC] Dialog에서 C# Winform 불러오기 및 Chromium 사용, Dynamic Control Resize (1) | 2021.03.12 |