Тонкие, не изменяемые размеры границ окна отображаются неправильно

568
Fritz

На моем ПК с Windows 7 SP 1 границы всех не изменяемых размеров окон (например, всех диалоговых окон или калькулятора) выглядят как левые из двух изображений ниже. Граница слишком тонкая и перекрывает себя (посмотрите внимательно на окруженные области). Правильное изображение показывает, как оно должно выглядеть на основе веб-поиска.

Все окна с изменяемой границей выглядят корректно. Дальнейшие исследования показали, что проблема появляется во всех окнах, в которых отсутствует WS_BORDER стиль окна . Добавление этого стиля вручную к окну (с помощью функции SetWindowLongPtr ) устраняет проблему, хотя в этом случае размер окна можно изменять, что обычно нежелательно.

Кто-нибудь когда-либо видел эту проблему раньше или есть идеи, где искать проблему?

Broken window borders enter image description here

3

1 ответ на вопрос

3
Ƭᴇcʜιᴇ007

Похоже, что ваш параметр Border Padding был ОТКЛЮЧЕН.

Window Color and Appereance

Обратите внимание, что на этом рисунке установлено значение «1», а углы выглядят точно так же, как и ваши проблемные. По умолчанию этот параметр будет «4».

Чтобы попасть в вышеуказанное окно:

  • Щелкните правой кнопкой мыши на рабочем столе.
  • Нажмите Персонализировать .
  • Нажмите Цвет окна .
  • Нажмите Расширенные настройки внешнего вида ...
Нет, это не так, границы заполнения на моей машине установлены на 5. Кроме того, это значение, по-видимому, применяется только к окнам с изменяемым размером (которые кажутся правильными), а не к неизменяемым окнам, таким как диалоговые окна (как вы можете видеть, темно-серые отступы отсутствуют в диалоговом окне на скриншоте). Fritz 10 лет назад 0
Weird. Если вы измените этот параметр, а затем примените его, будет ли он влиять на него? Эта проблема возникает в безопасном режиме и / или для других пользователей? Ƭᴇcʜιᴇ007 10 лет назад 0
Подождите, я ответил, не читая там, моя вина. На самом деле «Active Window Border» установлен на 5, а «Border Padding» был установлен на 0 ... установка его на 1 действительно решает проблему. Спасибо, я сразу приму ваш ответ! Fritz 10 лет назад 0
Самое странное, что я никогда не открывал этот диалог до исследования проблемы. Я действительно думал, что он больше не существует после Windows XP. Fritz 10 лет назад 1