Поделиться через


Стили списка

Чтобы создать поле списка с помощью функции CreateWindow или CreateWindowEx, используйте класс LIS ТБ OX, соответствующие константы стиля окна и следующие константы стиля, чтобы определить поле списка. После создания элемента управления эти стили нельзя изменить, за исключением отмеченных.

Константа Description
LBS_COМБ OBOX
Уведомляет поле списка о том, что оно входит в поле со списком. Это обеспечивает координацию между двумя элементами управления, чтобы они присутствовали в едином пользовательском интерфейсе. Поле со списком должно задать этот стиль. Если стиль задан всем, кроме поля со списком, поле списка будет рассматриваться неправильно как дочерний элемент поля со списком, и сбой приведет к сбою.
LBS_DISABLENOSCROLL
Отображает отключенную горизонтальную или вертикальную полосу прокрутки, если поле списка не содержит достаточно элементов для прокрутки. Если этот стиль не указан, полоса прокрутки скрыта, если поле списка не содержит достаточно элементов. Этот стиль должен использоваться с WS_VSCROLL или стилем WS_HSCROLL.
LBS_EXTENDEDSEL
Позволяет выбрать несколько элементов с помощью клавиши SHIFT и мыши или специальных сочетаний клавиш.
LBS_HASSTRINGS
Указывает, что поле списка содержит элементы, состоящие из строк. Поле списка сохраняет память и адреса строк, чтобы приложение пользовалось LB_GETTEXT сообщением для получения текста для определенного элемента. По умолчанию все поля списков, кроме полей списка, нарисованных владельцем, имеют этот стиль. Вы можете создать поле со списком, нарисованным владельцем, либо без этого стиля.
Для полей списков, нарисованных владельцем без этого стиля, LB_GETTEXT сообщение извлекает значение, связанное с элементом (данные элемента).
LBS_MULTICOLUMN
Задает поле списка с несколькими столбцами, которое прокручивается по горизонтали. Поле списка автоматически вычисляет ширину столбцов или приложение может задать ширину с помощью сообщения LB_SETCOLUMNWIDTH. Если в списке есть стиль LBS_OWNERDRAWFIXED, приложение может задать ширину, когда поле списка отправляет сообщение WM_MEASUREITEM.
Поле списка с стилем LBS_MULTICOLUMN не может прокручиваться по вертикали, игнорируя любые получаемые WM_VSCROLL сообщения.
Стили LBS_MULTICOLUMN и LBS_OWNERDRAWVARIABLE нельзя объединить. Если оба указаны, LBS_OWNERDRAWVARIABLE игнорируется.
LBS_MULTIPLESEL
Включает или отключает выбор строки при каждом щелчке пользователя или дважды щелкает строку в списке. Пользователь может выбрать любое количество строк.
LBS_NODATA
Задает поле списка без данных. Укажите этот стиль, когда количество элементов в поле списка превысит одну тысячу. Поле списка без данных также должно иметь стиль LBS_OWNERDRAWFIXED, но не должен иметь стиль LBS_SORT или LBS_HASSTRINGS.
Поле списка без данных напоминает поле со списком, нарисованным владельцем, за исключением того, что он не содержит строковых или растровых данных для элемента. Команды для добавления, вставки или удаления элемента всегда игнорируют все указанные данные элемента; запросы на поиск строки в поле списка всегда завершаются ошибкой. Система отправляет сообщение WM_DRAWITEM в окно владельца, когда элемент должен быть нарисован. Элемент itemID структуры DRAWITEMSTRUCT, переданный с сообщением WM_DRAWITEM, указывает номер строки нарисованного элемента. Поле списка без данных не отправляет сообщение WM_DELETEITEM.
LBS_NOINTEGRALHEIGHT
Указывает, что размер поля списка — это именно размер, указанный приложением при создании поля списка. Как правило, система имеет размер поля списка, чтобы поле списка не отображалось частично.
Для полей списка с стилем LBS_OWNERDRAWVARIABLE всегда применяется стиль LBS_NOINTEGRALHEIGHT.
LBS_NOREDRAW
Указывает, что внешний вид поля списка не обновляется при внесении изменений.
Чтобы изменить состояние перерисовки элемента управления, используйте сообщение WM_SETREDRAW .
LBS_NOSEL
Указывает, что поле списка содержит элементы, которые можно просмотреть, но не выбрать.
LBS_NOTIFY
Вызывает отправку кода уведомления в родительское окно при каждом щелчке элемента списка (LBN_SELCHANGE), дважды щелкает элемент (LBN_DBLCLK) или отменяет выделение (LBN_SELCANCEL).
LBS_OWNERDRAWFIXED
Указывает, что владелец поля списка отвечает за рисование его содержимого и что элементы в поле списка совпадают с высотой. Окно владельца получает сообщение WM_MEASUREITEM при создании поля списка и WM_DRAWITEM сообщение при изменении визуального аспекта поля списка.
LBS_OWNERDRAWVARIABLE
Указывает, что владелец поля списка отвечает за рисование его содержимого и что элементы в поле списка являются переменными в высоту. Окно владельца получает сообщение WM_MEASUREITEM для каждого элемента в поле при создании поля списка и WM_DRAWITEM сообщение при изменении визуального аспекта поля списка.
Этот стиль приводит к включению стиля LBS_NOINTEGRALHEIGHT .
Этот стиль игнорируется, если указан стиль LBS_MULTICOLUMN .
LBS_SORT
Сортирует строки в поле списка в алфавитном порядке.
LBS_STANDARD
Сортирует строки в поле списка в алфавитном порядке. Родительское окно получает код уведомления всякий раз, когда пользователь щелкает элемент списка, дважды щелкает элемент или отменяет выделение. В списке есть вертикальная полоса прокрутки, и она имеет границы со всеми сторонами. Этот стиль объединяет стили LBS_NOTIFY, LBS_SORT, WS_VSCROLL и WS_BORDER.
LBS_USETABSTOPS
Позволяет списку распознавать и развертывать символы вкладок при рисовании строк. Можно использовать сообщение LB_SETTABSTOPS для указания позиций стоп-стоп табуляции. Позиции вкладки по умолчанию — 32 единицы шаблонов диалоговых окон. Единицы шаблонов диалоговых окон — это независимые от устройства единицы, используемые в шаблонах диалоговых окон. Чтобы преобразовать измерения из единиц шаблона диалога в единицы экрана (пиксели), используйте функцию MapDialogRect .
LBS_WANTKEYBOARDINPUT
Указывает, что владелец поля списка получает WM_VKEYTOITEM сообщения, когда пользователь нажимает клавишу, и поле списка имеет фокус ввода. Это позволяет приложению выполнять специальную обработку при вводе клавиатуры.

Требования

Требование Значение
Заголовок
Winuser.h