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


Структура LVITEMW (commctrl.h)

Задает или получает атрибуты элемента представления списка. Эта структура была обновлена для поддержки нового значения маски (LVIF_INDENT), которое включает отступ элемента. Эта структура заменяет структуру LV_ITEM .

Синтаксис

typedef struct tagLVITEMW {
  UINT   mask;
  int    iItem;
  int    iSubItem;
  UINT   state;
  UINT   stateMask;
  LPWSTR pszText;
  int    cchTextMax;
  int    iImage;
  LPARAM lParam;
  int    iIndent;
  int    iGroupId;
  UINT   cColumns;
  PUINT  puColumns;
  int    *piColFmt;
  int    iGroup;
} LVITEMW, *LPLVITEMW;

Члены

mask

Тип: UINT

Набор флагов, указывающих, какие элементы этой структуры содержат данные для задания или какие элементы запрашиваются. Этот элемент может иметь один или несколько из следующих флагов:

Значение Значение
LVIF_COLFMT
Windows Vista и более поздних версий. Член piColFmt является допустимым или должен быть задан. Если этот флаг используется, член cColumns является допустимым или должен быть задан.
LVIF_COLUMNS
Член cColumns является допустимым или должен быть задан.
LVIF_DI_SETITEM
Операционная система должна хранить запрошенные сведения об элементах списка и не запрашивать их снова. Этот флаг используется только с кодом уведомления LVN_GETDISPINFO .
LVIF_GROUPID
Член iGroupId является допустимым или должен быть задан. Если этот флаг не установлен при отправке сообщения LVM_INSERTITEM , предполагается, что значение iGroupId I_GROUPIDCALLBACK.
LVIF_IMAGE
Элемент iImage является допустимым или должен быть задан.
LVIF_INDENT
Элемент iIndent является допустимым или должен быть задан.
LVIF_NORECOMPUTE
Элемент управления не создает LVN_GETDISPINFO для получения текстовых сведений, если он получает LVM_GETITEM сообщение. Вместо этого элемент pszText будет содержать LPSTR_TEXTCALLBACK.
LVIF_PARAM
Член lParam является допустимым или должен быть задан.
LVIF_STATE
Член состояния является допустимым или должен быть задан.
LVIF_TEXT
Элемент pszText является допустимым или должен быть задан.

iItem

Тип: int

Отсчитываемый от нуля индекс элемента, на который ссылается эта структура.

iSubItem

Тип: int

Один индекс подэлемента, на который ссылается эта структура, или нуль, если эта структура ссылается на элемент, а не на подэлемент.

state

Тип: UINT

Указывает состояние элемента, изображение состояния и изображение наложения. Элемент stateMask указывает допустимые биты этого элемента.

Биты от 0 до 7 этого элемента содержат флаги состояния элемента. Это может быть одно или несколько значений состояния элемента .

Биты от 8 до 11 этого элемента указывают индекс изображения с однократным наложением. Как полноразмерный список изображений значков, так и маленький список изображений значков могут иметь наложение изображений. Изображение наложения накладывается на изображение значка элемента. Если эти биты равны нулю, элемент не имеет наложения изображения. Чтобы изолировать эти биты, используйте маску LVIS_OVERLAYMASK . Чтобы задать индекс наложения в этом элементе, используйте макрос INDEXTOOVERLAYMASK . Изображения наложения списка изображений задаются с помощью функции ImageList_SetOverlayImage .

Биты от 12 до 15 этого элемента указывают индекс образа состояния. Изображение состояния отображается рядом со значком элемента, чтобы указать состояние, определяемое приложением. Если эти биты равны нулю, элемент не имеет изображения состояния. Чтобы изолировать эти биты, используйте маску LVIS_STATEIMAGEMASK . Чтобы задать индекс изображения состояния, используйте макрос INDEXTOSTATEIMAGEMASK . Индекс изображения состояния указывает индекс изображения в списке изображений состояния, который должен быть нарисован. Список изображений состояния указывается с сообщением LVM_SETIMAGELIST .

stateMask

Тип: UINT

Значение, указывающее, какие биты элемента состояния будут извлечены или изменены. Например, если задать для этого элемента значение LVIS_SELECTED , будет получено только состояние выбора элемента.

Этот элемент позволяет изменять одно или несколько состояний элемента без необходимости сначала извлекать все состояния элемента. Например, если задать для этого элемента значение LVIS_SELECTED , а для состояния — нулевое, состояние выбора элемента будет очищено, но ни одно из других состояний не будет затронуто.

Чтобы получить или изменить все состояния, присвойте этому члену значение (UINT)-1.

Макрос ListView_SetItemState можно использовать как для задания, так и для очистки битов.

pszText

Тип: LPTSTR

Если в структуре указываются атрибуты элемента, pszText является указателем на строку, завершающуюся значением NULL, содержащую текст элемента. Отвечая на уведомление LVN_GETDISPINFO , убедитесь, что этот указатель остается действительным до получения следующего уведомления.

Если структура получает атрибуты элемента, pszText является указателем на буфер, который получает текст элемента. Обратите внимание, что хотя элемент управления представлением списка позволяет хранить строку любой длины в виде текста элемента, отображаются только первые 260 TCHAR.

Если значение pszText равно LPSTR_TEXTCALLBACK, элемент является элементом обратного вызова. Если текст обратного вызова изменяется, необходимо явно задать для pszText значение LPSTR_TEXTCALLBACK и уведомить элемент управления представлением списка об изменении, отправив LVM_SETITEM или LVM_SETITEMTEXT сообщение.

Не устанавливайте для pszText значение LPSTR_TEXTCALLBACK, если элемент управления представлением списка имеет стиль LVS_SORTASCENDING или LVS_SORTDESCENDING .

cchTextMax

Тип: int

Число объектов TCHARв буфере, на который указывает pszText, включая завершающее значение NULL.

Этот элемент используется только в том случае, если структура получает атрибуты элемента. Он игнорируется, если в структуре указываются атрибуты элемента. Например, параметр cchTextMax игнорируется во время LVM_SETITEM и LVM_INSERTITEM. Он доступен только для чтения во время LVN_GETDISPINFO и других уведомлений LVN_.

Примечание Никогда не копируйте больше , чем cchTextMaxTCHARs , где cchTextMax включает завершающее значение NULL, в pszText во время уведомления LVN_, в противном случае программа может завершиться ошибкой.
 

iImage

Тип: int

Индекс значка элемента в списке изображений элемента управления. Это относится как к большому, так и к маленькому списку изображений. Если этот элемент является значением I_IMAGECALLBACK, то за хранение индекса отвечает родительское окно. В этом случае элемент управления представлением списка отправляет родительскому элементу код уведомления LVN_GETDISPINFO для получения индекса при необходимости отображения изображения.

lParam

Тип: LPARAM

Значение, относящееся к элементу. Если вы используете сообщение LVM_SORTITEMS , элемент управления представлением списка передает это значение в определяемую приложением функцию сравнения. Вы также можете использовать сообщение LVM_FINDITEM для поиска элемента управления представлением списка элемента с указанным значением lParam .

iIndent

Тип: int

Версия 4.70. Количество ширины изображения для отступа элемента. Один отступ равен ширине изображения элемента. Таким образом, значение 1 отступает для элемента по ширине одного изображения, значение 2 — на два изображения и т. д. Обратите внимание, что это поле поддерживается только для элементов. Попытка задать отступ подэлемента приведет к сбою вызывающей функции.

iGroupId

Тип: int

Версия 6.0 Идентификатор группы, к которой принадлежит элемент, или одно из следующих значений.

Значение Значение
I_GROUPIDCALLBACK
Элемент управления listview отправляет родительскому элементу LVN_GETDISPINFO код уведомления для получения индекса группы.
I_GROUPIDNONE
Элемент не принадлежит группе.

cColumns

Тип: UINT

Версия 6.0 Количество столбцов данных (подэлементов), отображаемых для этого элемента в представлении плитки. Максимальное значение — 20. Если это значение равно I_COLUMNSCALLBACK, размер массива столбцов и самого массива (puColumns) получается путем отправки уведомления LVN_GETDISPINFO .

puColumns

Тип: PUINT

Версия 6.0 Указатель на массив индексов столбцов, указывающий, какие столбцы отображаются для этого элемента, и порядок этих столбцов.

piColFmt

Тип: int*

Windows Vista: Не реализовано. Windows 7 и более поздних версий: Указатель на массив следующих флагов (отдельно или в сочетании), указывающий формат каждого подэлемента в расширенном представлении плитки.

Значение Значение
LVCFMT_LINE_BREAK
Принудительно выполняет перенос столбца в начало следующего списка столбцов.
LVCFMT_FILL
Заполняет оставшуюся часть области плитки. Может иметь название.
LVCFMT_WRAP
Позволяет столбцу переноситься в оставшееся пространство в списке столбцов.
LVCFMT_NO_TITLE
Удаляет заголовок из подэлемента.
LVCFMT_TILE_PLACEMENTMASK
Эквивалентно сочетанию LVCFMT_LINE_BREAK и LVCFMT_FILL.

iGroup

Тип: int

Windows Vista: индекс группы элемента. Допустимо только для данных владельца или обратного вызова (один элемент в нескольких группах).

Комментарии

Структура LVITEM используется с несколькими сообщениями, включая LVM_GETITEM, LVM_SETITEM, LVM_INSERTITEM и LVM_DELETEITEM.

В представлении плитки имя элемента отображается справа от значка. Можно указать дополнительные подэлементы (соответствующие столбцам в представлении сведений), которые будут отображаться в строках под именем элемента. Массив puColumns содержит индексы подэлементов для отображения. Индексы должны быть больше 0, так как подэлемент 0, имя элемента, уже отображается. Сведения о столбцах также можно задать в структуре LVTILEINFO при изменении элемента списка.

Пример кода см. в разделе Использование элементов управления List-View.

Примечание Comctl32.dll версия 6 не распространяется, но включена в Windows или более поздней версии. Чтобы использовать Comctl32.dll версии 6, укажите его в манифесте. Дополнительные сведения о манифестах см. в разделе Включение визуальных стилей.
 

Примечание

Заголовок commctrl.h определяет LVITEM как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть commctrl.h