当使用Windows SDK编译用C ++编写的程序时,如果指定-subsystem:windows,6.1
,窗口的宽度更小。 如果我不这样做,或者做 – -subsystem:windows
没有6.1
-subsystem:windows
,宽度是正常的。
我很好奇为什么这样做,如果有办法让它保持相同的宽度,无论我通过什么命令行链接。
编辑:所以它也是高度,高度和宽度都不同。 如果我用Inspect.exe来查看,它说每次的大小都是一样的。
编辑2:也是一个窗口应用程序与CreateWindow创build,而不是控制台。
编辑3:这是完整的代码,初始化我的窗口:
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);
我怀疑你是指定一些窗口风格,只有在Windows7(Win7 = 6.1)支持。 用参数发送完整的CreateWindow调用,并尝试关闭Aero。 例如,在一个场景中,窗口边界可以包含在宽度/高度中。