Сообщений 0    Оценка 41        Оценить  
Система Orphus

Почему не появляется выпадающий список?

Автор: Игорь Вартанов

Версия текста: 1.0

Такой эффект имеет место при неправильном заданиии высоты контрола combo box. В этом случае вместо выпадающего списка под полем ввода отрисовывается утолщенная линия. Проблема может быть решена увеличением высоты контрола, как программым способом, так и редактированием ресурс-скрипта диалога на этапе проектирования. Программное изменение размеров combo box'а рассмотрено в статье Как программно изменить высоту выпадающего списка?. Для устранения проблемы на этапе проектирования загляните в ваш проект, откройте в текстовом режиме файл, содержащий ресурс необходимого вам диалога и отыщите строку, похожую на эту:

COMBOBOX  IDC_CB,7,64,77,62,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP

Четвертое число после идентификатора контрола (в нашем примере это IDC_CB) задает высоту контрола в единицах диалогового окна (в нашем примере это 62). Она, скорее всего, задана неправильно - слишком мала. Отредактируйте текст скрипта при необходимости.

ПРИМЕЧАНИЕ
Необходимо всегда иметь ввиду, что combo box носит название "комбинированного" вовсе не случайно - он реально состоит из нескольких окон: поля ввода (edit), кнопки управления выпадающим списком (button) и окна выпадающего списка (list box). И шириной контрола combo box будет ширина поля ввода вместе с дочерним окном кнопки управления, а высотой его будет сумма высот поля ввода и окна выпадающего списка в развернутом состоянии. Высота, задаваемая для combobox-контрола, никак не влияет на высоту его поля ввода.

Другим способом решения указанной проблемы может быть правильная работа с контролом в редакторе ресурсов. Рассмотрим работу с редактором на примере Visual Sudio.


Рисунок 1

Для перевода редактора в режим управления высотой контрола необходимо щелкнуть мышью по кнопке управления выпадающим списком контрола. Контрол в результате этого примет вид, приведенный на рисунке 1. По-умолчанию редактор ресурсов Visual Studio создает combobox-контрол высотой, достаточной для вывода выпадающего списка высотой в одну строку. В ресурс-скрипте это выражается числом 30. На каждую дополнительную строку потребуется 7-8 единиц.

Растягивая границы контрола за темный квадратик на нижней стороне, можно визуально отрегулировать высоту контрола.

Вернуть редактор в режим регулирования ширины контрола можно, щелкнув по полю ввода.


Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.
    Сообщений 0    Оценка 41        Оценить