Сообщения Win32 LB (списки)

=== Сообщения визуального списка 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.