Сообщения 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.