使用windows SDK编译C++程序时,如果我指定-subsystem:windows,6.1
,窗口的宽度会更小。如果我不这样做,或者-subsystem:windows
没有6.1
,宽度是正常的。
我很好奇为什么会这样做,以及是否有办法让它保持相同的宽度,而不管我传递给链接的命令行是什么。
编辑:所以它也是高度,高度和宽度都是不同的。如果我用 Inspect.exe 查看它,它会说每次的大小都是相同的。
EDIT2:它也是使用 CreateWindow 创建的窗口应用程序,而不是控制台。
EDIT3:这是初始化我的窗口的完整代码:
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(SMALL_ICON));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = g_szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(SMALL_ICON));
g_hMainWnd = CreateWindow(
g_szWindowClass,
t_szWindowTitle,
WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
CW_USEDEFAULT, CW_USEDEFAULT,
392, 250,
NULL,
NULL,
hInstance,
NULL
);
我用这个调整窗口大小:
SetWindowPos(hWnd, NULL,
(GetSystemMetrics(SM_CXFULLSCREEN)/2)- (392/2),
(GetSystemMetrics(SM_CYFULLSCREEN)/2) - (250/2),
392, 120, SWP_NOZORDER);