Главная » Win32 API » Комбинированный список Combo Box

0

Комбинированный список объединяет однострочный текстовый редактор и список строк, создается на основе предопределенного клас­са «Combobox».

Стиль комбинированного списка, определяемый в параметре dwStyle функции CreateWindowEx, является комбинацией стилей с префиксом WS_ (WS_CHILD, WS_VISIBLE, WS_VSCROLL) и спе­циализированных стилей с префиксами CBS_, перечисленных ниже:

•            CBSSIMPLE всегда отображается окно со списком, текущий выбор в поле редактирования текста;

•            CBSAUTOH SCROLL текст в поле редактирования текста автоматически прокручивается вправо, когда пользователь вводит с клавиатуры символ в конце строки. Если этот стиль не установлен, принимается только текст, который помещается внутри прямоуголь­ной границы поля;

•            CBSDISABLENOSCROLL в окне со списком вертикальная линейка прокрутки заблокирована, если поле окна содержит недоста­точно элементов для прокрутки. Без этого стиля линейка прокрутки скрывается, если окно со списком содержит недостаточно элементов;

•            CBSDROPDOWN стиль подобен CBSSIMPLE, за исклю­чением того, что окно со списком не отображается, пока пользователь не выберет значок рядом с полем редактирования текста;

•            CBS_DROPDOWNLIST стиль подобен CBS_DROPDOWN,

за исключением того, что поле редактирования текста заменено стати­ческим текстовым элементом, который отображает текущий выбор в окне со списком.

•            CBSHASSTRINGS представляемое владельцем комбиниро­ванное окно содержит элементы, состоящие из строк. Комбинирован­ное окно поддерживает память и адрес для строк, так что прикладная программа может использовать сообщение CBGETLBTEXT, чтобы восстановить текст для отдельного элемента;

•            CBSLOWERCASE преобразовывает в нижний регистр лю­бые символы верхнего регистра, введенные в поле редактирования текста комбинированного окна;

•            CBSNOINTEGRALHEIGHT определяет, что размер комби­нированного окна это точный размер, определенный прикладной программой, создавшей комбинированное окно. Обычно Windows ус­танавливает размеры комбинированного окна так, чтобы оно не ото­бражало элементы частично;

•            CBSOEMCONVERT преобразует текст, введенный в поле редактирования текста комбинированного окна. Текст преобразуется из набора символов Windows в набор символов OEM, а затем обратно в набор Windows. Это гарантирует соответствующее символьное пре­образование, когда прикладная программа вызывает функцию CharToOem, чтобы преобразовать строку Windows в комбинированном окне в символы OEM. Этот стиль наиболее полезен для комбиниро­ванных окон, которые содержат имена файлов и применяются только в комбинированных окнах, созданных со стилем CBSSIMPLE или CBS_DROPDOWN;

•            CBSOWNERDRAWFIXED определяет, что владелец окна со списком ответственен за прорисовку его содержания и что элемен­ты в окне со списком все равной высоты. Окно владельца принимает сообщение WMMEASUREITEM, когда комбинированное окно созда­но, а сообщение WMDRAWITEM, когда внешний вид комбиниро­ванного окна изменился;

•            CBSOWNERDRAWVARIABLE стиль аналогичен CBSOWNERDRAWFIXED за исключением того, что элементы в окне со списком являются переменными по высоте;

•            CBSSORT стиль позволяет автоматически сортировать строки, введенные в окно со списком;

•            CBSUPPERCASE разрешает преобразование символов, введенных в поле редактирования текста комбинированного окна, из нижнего регистра в верхний регистр.

Обмен сообщениями с элементом ComboBox похож на обмен с

элементами ListBox и EditBox. Сообщения, отправляемые ComboBox,
имеют префикс СВ_, а сообщения для родительского окна, получае­
мые от ComboBox, имеют префикс CBN_. Примерами сообщений для
ComboBox являются CBGETEDITSEL, CBSETEDITSEL,
CBADDSTRING,               CBGETCOUNT,               CBGETCURSEL,

CBGETLBTEXT. От элемента управления класса Combobox" посту­пают следующие сообщения:

•            CBNCLOSEUP -список стал невидим;

•            CBNDBLCLK был двойной щелчок левой клавишей мыши по строке списка, имеющего стиль CBSSIMPLE;

•            CBNDROPDOWN список стал видимым;

•            CBNEDITCHANGE пользователь изменил содержимое окна редактирования, причем изменения уже отображены;

•            CBNEDITUPDATE пользователь изменил содержимое окна редактирования, изменения еще не отображены;

•            CBNERRSPACE ошибка;

•            CBNKILLFOCUS список потерял фокус ввода;

•            CBNSELENDCANCEL пользователь отменил выбор в спи­ске;

•            CBNSELENDOK пользователь выбрал строку в списке;

•            CBNSELCHANGE изменился номер выбранной строки;

•            CBNSETFOCUS список получил фокус ввода.

Источник: Сучкова, Л.И. Win32 API: основы программирования: учебное пособие/ Л.И. Сучкова; АлтГТУ им. ИИ. Ползунова. -Барнаул, АлтГТУ, 2010. 138 с, ил.

По теме:

  • Комментарии