|
■No23662 (きたぴぃ さん) に返信 > > 当方でも同様の現象で悩んでいましたが、とりあえず下記の修正で右端の隙間は無くなりました。 > 他に影響が無いか等は未確認ですので、あしからず。 > > void CChildFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI) > { > lpMMI->ptMaxTrackSize.x += GetSystemMetrics( SM_CXSIZEFRAME ) * 2; > CMDIChildWnd::OnGetMinMaxInfo(lpMMI); > } > ありがとうございます。 MSDNで調べたところ、Vistaでは下記のように[SetProcessDPIAware]APIを呼び出せば良いようです。
HMODULE hModule = GetModuleHandle(_T("user32.dll")); ASSERT(hModule); if(hModule) { typedef BOOL (WINAPI* PFNSETPROCESSDPIAWARE)(); PFNSETPROCESSDPIAWARE pfnSetProcessDPIAware = (PFNSETPROCESSDPIAWARE)GetProcAddress(hModule, "SetProcessDPIAware"); if(pfnSetProcessDPIAware) { pfnSetProcessDPIAware(); } }
|