DI_LISTBOX
Элемент диалога
DI_LISTBOX описывает список.
struct FarDialogItem
{
enum FARDIALOGITEMTYPES Type = DI_LISTBOX
intptr_t X1 = X1
intptr_t Y1 = Y1
intptr_t X2 = X2
intptr_t Y2 = Y2
struct FarList *ListItems = ListItems
FARDIALOGITEMFLAGS Flags = Flags
const wchar_t *Data = верхний заголовок списка
};
Внимание!
- Приведено схематичное изображение структуры; полное описание структуры см. здесь.
ListItems
Указатель на структуру FarList, описывающую пункты для начальной инициализации списка.
Флаги
Для элемента
DI_LISTBOX имеют значения следующие флаги (про флаги списка см. FarListItem):
| Флаг | Описание |
|---|---|
| DIF_DEFAULTBUTTON | флаг, означающий, что данный элемент диалога является "элементом по умолчанию" |
| DIF_FOCUS | определяет, что при показе диалога установить клавиатурный фокус ввода на данный элемент |
| DIF_LISTAUTOHIGHLIGHT | горячие клавиши будут назначены автоматически |
| DIF_LISTNOAMPERSAND | показывать горячие клавиши в списке |
| DIF_LISTWRAPMODE | "заворачивает" список при навигации по списку |
| DIF_LISTNOCLOSE | не закрывать диалог при выборе элемента в списке |
| DIF_LISTTRACKMOUSE | реагировать на движение мыши в списке |
| DIF_LISTTRACKMOUSEINFOCUS | реагировать на движение мыши в списке только если элемент находится в фокусе |
| DIF_DISABLE | элемент является недоступным |
| DIF_NOFOCUS | управляющий элемент не получает клавиатурный фокус ввода |
| DIF_LISTNOBOX | отключает прорисовку рамки вокруг списка. В этом случае Data игнорируется |
События
| Событие | Описание |
|---|---|
| DN_DRAWDLGITEM | начало отрисовки элемента |
| DN_CTLCOLORDLGLIST | запрос цветовых атрибутов для отрисовки списка |
| DN_LISTCHANGE | изменилась позиция в списке |
| DN_LISTHOTKEY | пользователь для смены пункта в списке воспользовался горячими клавишами |
Замечания
Работа со списками
DI_COMBOBOX и DI_LISTBOX организована по следующей схеме:
- Запуск DialogInit
FarDialogItem.Param.ListItems - только для начальной инициализации.
- DM_LISTADD
Добавляет только пункт списка, без ассоциированных данных
- DM_LISTINSERT
Вставляет только пункт списка, без ассоциированных данных
- DM_LISTUPDATE
Удаляет UserData для обновляемого пункта списка.
Только обновление данных пункта списка без ассоциированных данных
- DM_LISTSETDATA
Перед установкой новых ассоциированных данных предыдущие уничтожаются (если было выделение по памяти)
- DM_LISTGETDATA
Возвращается значение, предварительно установленное DM_LISTSETDATA.
- DM_LISTGETDATASIZE
Возвращается размер ассоциированных данных.
- DM_LISTGETITEM
Возвращает только пункт списка, без ассоциированных данных.
- Завершение DialogFree
Ассоциированные данные уничтожаются (если было выделение по памяти)
Текстовый курсор после инициализации элемента - в режиме замены.
Смотрите также: