Windows 8上的CreateWindow似乎创建了太大的窗口

时间:2015-03-22 13:47:14

标签: c++ createwindow

我在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。

1 个答案:

答案 0 :(得分:1)

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

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

documentation并未提及要链接的lib,但它应为shcore.lib