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 に答える