2

我在大小为 1920x1080(本机分辨率)的 Windows 8.1 上调用 CreateWindowEx(如下),生成的窗口要大得多(可能大 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。

4

1 回答 1

2

对于来自 Google 的任何人,我补充说:

SetProcessDpiAwareness(PROCESS_DPI_AWARENESS::PROCESS_SYSTEM_DPI_AWARE)
在我打电话之前
CreateWindow()

文档没有提到要链接到哪个库,但应该是shcore.lib.

于 2015-03-23T09:55:10.543 回答