AdjustWindowRectEx () и GetWindowRect () дают неправильный размер с WS_OVERLAPPED

Я хочу рассчитать полный размер окна перед его открытием.Для этого я использую AdjustWindowRectEx ().Мой код выглядит так для окна с размером клиента 640x480:Это возвращает следующие значения:Однако при открытии окна с помощью CreateWindowEx () и передачекак размер окна, физический размер окна фактически оказывается 656x515 пикселей.Тем не менее, GetWindowRect () возвращает 646x505, то есть те же размеры, что и AdjustWindowRectEx (), но, как я уже сказал, когда я делаю снимок экрана рабочего стола и измеряю размер окна с помощью программы рисования, его физический размер на самом деле составляет 656x515 пикселей.У кого-нибудь есть объяснение этому?Размер клиента в порядке, 640x480, но похоже, что размер границы вычислен неправильно, потому что граница использует больше пикселей, чем рассчитано с помощью AdjustWindowRectEx () и GetWindowRect ().У меня Windows 7.РЕДАКТИРОВАТЬ:Это отклонено, потому что название вопроса вводит в заблуждение?Как указано в автодокументах MSDN, WS_OVERLAPPED не поддерживается AdjustWindowRectEx ().Так есть ли другой способ рассчитать размеры окна WS_OVERLAPPED?Использование WS_OVERLAPPEDWINDOW вместо этого не является решением, потому что он устанавливает WS_THICKFRAME и WS_MAXIMIZEBOX, которые мне не нужны.Вот тестовый код, который показывает проблему.Вы можете видеть, что размер клиента нормальный, но физический размер окна больше, чем тот, который возвращает GetWindowRect ().
7 голосов | спросил Andreas 13 Jpm1000000pmTue, 13 Jan 2015 20:45:13 +030015 2015, 20:45:13

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132