C ++ Windows Link Подсистема Вопрос - PullRequest
       13

C ++ Windows Link Подсистема Вопрос

3 голосов
/ 24 сентября 2011

При использовании 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);

1 Ответ

0 голосов
/ 24 сентября 2011

Я подозреваю, что вы указываете некоторые стили окон, которые поддерживаются только в Windows7 (Win7 = 6.1).Отправьте полный вызов CreateWindow с аргументами, а также попробуйте отключить Aero.Граница окна может быть включена в ширину / высоту, например, в одном сценарии.

...