Ошибка высоты выпадающего меню в CComboBox (общие элементы управления 6.0)? - PullRequest
2 голосов
/ 25 августа 2009

Я сделал простое приложение MFC (Visual Studio 2008, основанное на диалогах) и добавил CComboBox с помощью редактора ресурсов. Я использовал редактор ресурсов, чтобы указать высоту выпадающего меню. Затем я добавил код для добавления 100 текстов в комбинированный список. Если я запускаю это простое приложение, высота выпадающего списка игнорируется. Если я отключаю стиль Microsoft.Windows.Common-Controls 6.0.0.0 (отключаю прагму, которая добавляет его в файл манифеста), то все работает нормально.

Кто-нибудь заметил это поведение (и знает решение)? Я искал в Интернете и MSDN, но пока не повезло.

Ответы [ 2 ]

2 голосов
/ 31 августа 2009

Единственное решение, которое я нашел (спасибо кому-то в группе новостей Microsoft MFC), - это использовать флаг CBS_NOINTEGRALHEIGHT, который указывает, что комбинированный список должен смотреть на точный размер, указанный пользователем, а не настраивать его автоматически (причина этого патч заключается в том, что флаг обычно предназначен для отключения функции, при которой высота раскрытия настраивается таким образом, чтобы частичные элементы не отображались).

0 голосов
/ 25 августа 2009

Разница заключается в «новом» комбинированном окне в стиле Common-Controls-6.0 или в «оригинальном» комбинированном окне в старом стиле (до 6.0).

Полагаю, Microsoft наконец-то "исправила" элемент управления ComboBox, чтобы он динамически изменял высоту раскрывающегося списка в зависимости от количества элементов и доступной площади экрана, что лучше, чем наличие фиксированной высоты (IMHO).
К сожалению, у меня нет источника для этого, просто дикие догадки:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...