Сообщения Win32 LB (списки)
Материал из DRKB
Сообщения визуального списка ListBox (LB_)[править | править код]
LB_AddString - Добавляет строку к блоку списка.[править | править код]
Если поле списка не отсортировано, строка помещается в конец списка. Если поле списка имеет стиль LBS_OwnerDrawFixed или LBS_OwnerDrawVariable и не имеет стиля LBS_HasString, то LParam является 32-битовым значением, которое запоминается вместо строки, и каждый добавляемый элемент сравнивается с другими элементами один или несколько раз через сообщение WM_CompareItem, посылаемое владельцу поля списка.
- WParam: Не используется.
- LParam: LParam Указатель на добавляемую строку, с завершающим нулем.
- Возвращаемое значение: В случае успешного завершения возвращается индекс добавленной строки; иначе если не хватает памяти для записи строки, возвращается LB_ErrSpace, а если произошла ошибка, возвращается LB_Err.
LB_DeleteString - Удаляет строку из списка.[править | править код]
Если поле списка имеет стиль LBS_OwnerDrawFixed или LBS_OwnerDrawVariable и не имеет стиля LBS_HasString, то соответствующее 32-битовое значение удаляется и владельцу поля списка посылается сообщение WM_DeleteItem.
- WParam: Индекс удаляемого элемента.
- LParam: Не используется.
- Возвращаемое значение: Если WParam является правильным индексом, возвращается количество оставшихся в списке элементов. Иначе возвращается CB_Err.
LB_Dir - Добавляет к списку имена файлов из заданного каталога.[править | править код]
Добавляет к списку каждое имя файла из каталога, соответствующее маске файла и атрибутам файлов DOS.
- WParam: Атрибуты файлов DOS.
- LParam: Указатель на строку маски файла, с завершающим нулем.
- Возвращаемое значение: В случае успешного завершения возвращается индекс последнего элемента в результирующем списке; иначе если не хватает памяти для сохранения элементов, возвращается LB_ErrSpace, или, в случае ошибки, возвращается LB_Err.
LB_FindString - Находит первый элемент списка, соответствующий префиксной строке.[править | править код]
Если поле списка имеет стиль LBS_OwnerDrawFixed или LBS_OwnerDrawVariable и не имеет стиля LBS_HasString, то LParam является 32-битовым значением, которое сравнивается с каждым соответствующим 32-битовым значением в списке.
- WParam: Индекс, с которого должен начинаться поиск. Первым просматриваемым элементом является элемент, следующий после элемента с индексом WParam. Если достигается конец списка, то поиск продолжается с нулевого элемента до тех пор, пока индекс не достигнет значения WParam. Если WParam = -1, то просматривается весь список, начиная с нулевого элемента.
- LParam: Указатель на префиксную строку, с завершающим нулем.
- Возвращаемое значение: В случае успешного завершения возвращается индекс первого совпадающего элемента, иначе возвращается LB_Err.
LB_GetCount - Возвращает число элементов в списке.[править | править код]
- WParam: Не используется.
- LParam: Не используется.
- Возвращаемое значение: Число элементов в списке.
LB_GetCurSel - Возвращает индекс текущего выбранного элемента списка.[править | править код]
- WParam: Не используется.
- LParam: Не используется.
- Возвращаемое значение: Если выбранного элемента нет, возвращается LB_Err; Иначе возвращается индекс текущего выбранного элемента.
LB_GetHorizontalExtent - Возвращает ширину на которую список может быть прокручен по горизонтали.[править | править код]
Только для полей списков, созданных со стилем WS_HScroll.
- WParam: Не используется.
- LParam: Не используется.
- Возвращаемое значение: Возвращается количество позиций, на которое блок списка может быть прокручен по горизонтали.
LB_GetItemData - Возвращает 32-битовое значение, связанное с элементом в блоке списка.[править | править код]
- WParam: Индекс элемента.
- LParam: Не используется.
- Возвращаемое значение: В случае успешного завершения возвращается соответствующее 32-битовое значение. Иначе возвращается LB_Err.
LB_GetItemRect - Получает границу отрисовки элемента списка.[править | править код]
- WParam: Индекс элемента.
- LParam: Указатель на TRect, для приема значений границ отрисовки.
- Возвращаемое значение: В случае ошибки возвращается LB_Err.
LB_GetSel - Возвращает признак выбора элемента списка.[править | править код]
- WParam: Индекс элемента.
- LParam: Не используется.
- Возвращаемое значение: В случае ошибки возвращается LB_Err. Если элемент выбран, возвращается положительное значение; иначе возвращается 0.
LB_GetSelCount - Возвращает число элементов, выбранных в списке.[править | править код]
- WParam: Не используется.
- LParam: Не используется.
- Возвращаемое значение: Если список с множественным выбором, возвращается число выбранных элементов; иначе возвращается LB_Err.
LB_GetSelItems - Возвращает индексы элементов, выбранных в списке.[править | править код]
- WParam: Определяет максимальное количество индексов элементов.
- LParam: Указатель на массив Integer, достаточно большой для содержания WParam индексов элементов.
- Возвращаемое значение: Если список с множественным выбором, то индексы до WParam выбранных элементов помещаются в массив LParam, а возвращается суммарное число помещенных туда выбранных элементов; иначе возвращается LB_Err.
LB_GetText - Копирует текст элемента списка в заданный буфер.[править | править код]
Если поле списка имеет стиль LBS_OwnerDrawFixed или LBS_OwnerDrawVariable и не имеет стиля LBS_HasString, то 32-битовое значение, связанное с элементом списка, копируется в буфер.
- WParam: Индекс элемента.
- LParam: Указатель на буфер. Буфер должен быть достаточно большим для того, чтобы вмещать строку и завершающий нуль.
- Возвращаемое значение: Не используется.
LB_GetTextLen - Возвращает длину текста элемента списка.[править | править код]
- WParam: Индекс элемента.
- LParam: Не используется.
- Возвращаемое значение: Если WParam определяет верный индекс, то возвращается длина текста элемента с этим индексом; иначе возвращается LB_Err.
LB_GetTopIndex - Возвращает индекс первого видимого элемента списка.[править | править код]
Первоначально первым видимым элементом в списке является нулевой элемент. Если блок списка прокручивается, то верхним может оказаться другой элемент.
- WParam: Не используется.
- LParam: Не используется.
- Возвращаемое значение: Индекс первого видимого элемента.
LB_InsertString - Вставляет строку в список без сортировки.[править | править код]
- WParam: Если -1, то строка добавляется в конец списка. Иначе WParam используется как индекс вставки строки.
- LParam: Указатель на вставляемую строку с завершающим нулем.
- Возвращаемое значение: В случае успешного завершения, возвращается индекс, по которому была вставлена строка; иначе если не хватает памяти для сохранения строки, возвращается LB_ErrSpace, или, в случае ошибки, возвращается LB_Err.
LB_ResetContent - Удаляет все элементы из списка.[править | править код]
Если поле списка имеет стиль LBS_OwnerDrawFixed или LBS_OwnerDrawVariable и не имеет стиля LBS_HasString, то владельцу поля списка для каждого элемента посылается сообщение WM_DeleteItem.
- WParam: Не используется.
- LParam: Не используется.
- Возвращаемое значение: Не используется.
LB_SelectString - Выбирает первый элемент списка, соответствующий префиксной строке.[править | править код]
Если список имеет стиль LBS_OwnerDrawFixed или LBS_OwnerDrawVariable и не имеет стиля LBS_HasString, то LParam является 32-битовым значением, которое сравнивается с каждым соответствующим 32-битовым значением в списке.
- WParam: Индекс, с которого должен начинаться поиск. Первым просматриваемым элементом является элемент, следующий после элемента с индексом WParam. Если достигается конец списка, то поиск продолжается с нулевого элемента до тех пор, пока индекс не достигнет значения WParam. Если WParam = -1, то просматривается весь список, начиная с нулевого элемента.
- LParam: Префиксная строка с завершающим нулем.
- Возвращаемое значение: В случае успешного завершения возвращается индекс первого совпадающего элемента, иначе возвращается LB_Err и текущий выбор не изменяется.
LB_SelItemRange - Выбирает или отменяет выбор диапазона элементов в списке.[править | править код]
Для списков со множественным выбором.
- WParam: Если WParam равен нулю, выбор элементов отменяется; иначе элементы выбираются.
- LParamLo: Индекс начального элемента.
- LParamHi: Индекс конечного элемента.
- Возвращаемое значение: В случае ошибки возвращается LB_Err.
LB_SetColumnWidth - Устанавливает ширину столбца списка.[править | править код]
Для списков, имеющих стиль LBS_MultiColumn.
- WParam: Ширина каждого столбца.
- LParam: Не используется.
LB_SetCurSel - Выбирает элемент списка.[править | править код]
- WParam: Индекс элемента. Если WParam = -1, то выбранного элемента нет.
- LParam: Не используется.
- Возвращаемое значение: Если WParam = -1 или является неверным индексом, возвращается LB_Err; иначе возвращается индекс выбранного элемента.
LB_SetHorizontalExtent - Устанавливает ширину, на которую блок списка может быть прокручен по горизонтали.[править | править код]
Для списков, созданных со стилем WS_HScroll. Горизонтальная полоса прокрутки будет доступна или недоступна в зависимости от того, результирующий участок меньше ширины поля списка или нет.
- WParam: Число позиций, на которое блок списка может быть прокручен по горизонтали.
- LParam: Не используется.
LB_SetItemData - Устанавливает 32-битовое значение, связанное с элементом списка.[править | править код]
- WParam: Индекс элемента.
- LParam: Новое 32-битовое значение, связываемое с элементом.
- Возвращаемое значение: В случае ошибки возвращается LB_Err.
LB_SetSel - Установка или снятие признака выбора элемента в списке.[править | править код]
Для списков с множественным выбором.
- WParam: Если WParam = -0, выбор элемента отменяется; иначе элемент выбирается.
- LParam: Если LParam = -1, это сообщение относится ко всем элементам в блоке списка; иначе для определения используемого элемента используется LParamLo.
- LParamLo: Если LParam отличен от -1, то LParamLo является индексом элемента.
- Возвращаемое значение: В случае ошибки возвращается LB_Err.
LB_SetTabStops - Устанавливает позиции табуляции поля списка.[править | править код]
Текущая позиция табуляции составляет одну четвертую от базовой единицы ширины диалога, которая может быть получена с помощью функции GetDialogBaseUnits. Для списков со множественным выбором.
- WParam: См. LParam.
- LParam:
- Если WParam = 0, то табуляция устанавливается через каждые 2 позиции.
- Если WParam = 1, то табуляция устанавливается в каждой кратной LParam позиции в единицах диалога.
- В других случаях LParam указывает на массив из Integer, состоящий из WParam числа элементов, каждый из которых больше предыдущего и является позицией табуляции.
- Возвращаемое значение: Если были установлены все позиции табуляции, возвращается ненулевое значение; иначе возвращается нуль.
LB_SetTopIndex - Устанавливает индекс первого видимого элемента в списке.[править | править код]
- WParam: Индекс элемента.
- LParam: Не используется.
- Возвращаемое значение: В случае ошибки возвращается LB_Err.