我在Windows 8.1上调用CreateWindowEx(下面),大小为1920x1080(原生res),结果窗口要大得多(可能大2倍)。
HWND windowHandle;
DWORD style = WS_POPUP;
DWORD exStyle = WS_EX_APPWINDOW;
RECT rect;
SetRect(&rect, left, top, right, bottom);
::AdjustWindowRectEx(&rect, style, false, exStyle);
windowHandle =
::CreateWindowEx(
WS_EX_APPWINDOW,
title, //name of the window class
title, //title
style, //style flags
left, top, right - left, bottom - top,
NULL, //parent window
NULL, //menu
applicationHandle, //handle to application (given at WinMain)
NULL);
我在文档中读到了设备单元中预期的尺寸参数。我的预感是这是问题的原因,但我没有找到关于如何在适当的单位中转换或指定或禁用它的文档,以便我可以以像素为单位指定。
仅供参考该设备是Surface Pro II。
答案 0 :(得分:1)
对于来自Google的任何人,我补充道:
SetProcessDpiAwareness(PROCESS_DPI_AWARENESS::PROCESS_SYSTEM_DPI_AWARE)
在我打电话之前
CreateWindow()
documentation并未提及要链接的lib,但它应为shcore.lib
。