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


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

Задает или получает атрибуты элемента представления в виде дерева. Эта структура является улучшением структуры TVITEM . Новые приложения должны использовать эту структуру, если это уместно.

Синтаксис

typedef struct tagTVITEMEXW {
  UINT      mask;
  HTREEITEM hItem;
  UINT      state;
  UINT      stateMask;
  LPWSTR    pszText;
  int       cchTextMax;
  int       iImage;
  int       iSelectedImage;
  int       cChildren;
  LPARAM    lParam;
  int       iIntegral;
  UINT      uStateEx;
  HWND      hwnd;
  int       iExpandedImage;
  int       iReserved;
} TVITEMEXW, *LPTVITEMEXW;

Члены

mask

Тип: UINT

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

Значение Значение
TVIF_CHILDREN
Член cChildren является допустимым.
TVIF_DI_SETITEM
Элемент управления "Представление в виде дерева" сохранит предоставленные сведения и больше не будет запрашивать их. Этот флаг действителен только при обработке уведомления TVN_GETDISPINFO .
TVIF_EXPANDEDIMAGE

Версия 6.00 и Windows Vista. Допустимый элемент iExpandedImage .

TVIF_HANDLE
Допустимый элемент hItem .
TVIF_IMAGE
Допустимый элемент iImage .
TVIF_INTEGRAL
Допустимый элемент iIntegral .
TVIF_PARAM
Допустимый элемент lParam .
TVIF_SELECTEDIMAGE
Допустимый элемент iSelectedImage .
TVIF_STATE
Члены state и stateMask являются допустимыми.
TVIF_STATEEX

Версия 6.00 и Windows Vista. Допустимый элемент uStateEx .

TVIF_TEXT
Допустимы члены pszText и cchTextMax .

hItem

Тип: HTREEITEM

Дескриптор элемента.

state

Тип: UINT

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

Биты от 0 до 7 этого элемента содержат флаги состояния элемента. Список возможных флагов состояния элемента см. в разделе Состояния элементов элемента управления в виде дерева.

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

Рядом со значком элемента отображается изображение состояния, указывающее состояние, определяемое приложением. Укажите список изображений состояния, отправив TVM_SETIMAGELIST сообщение. Чтобы задать изображение состояния элемента, включите значение TVIS_STATEIMAGEMASK в элемент stateMask структуры TVITEM . Биты от 12 до 15 элемента состояния структуры указывают индекс в списке изображений состояния рисуемого изображения.

Чтобы задать индекс изображения состояния, используйте indexTOSTATEIMAGEMASK. Этот макрос принимает индекс и задает биты от 12 до 15 соответствующим образом. Чтобы указать, что элемент не имеет изображения состояния, установите для индекса значение 0. Это соглашение означает, что нулевое изображение в списке образов состояния нельзя использовать в качестве образа состояния. Чтобы изолировать биты от 12 до 15 элемента state , используйте маску TVIS_STATEIMAGEMASK .

stateMask

Тип: UINT

Допустимые биты элемента состояния . Если вы извлекаете состояние элемента, задайте биты элемента stateMask , чтобы указать биты, возвращаемые в элементе состояния . Если вы задаете состояние элемента, задайте биты элемента stateMask , чтобы указать биты элемента состояния , который вы хотите задать. Чтобы задать или получить индекс изображения наложения элемента, задайте биты TVIS_OVERLAYMASK . Чтобы задать или получить индекс изображения состояния элемента, задайте биты TVIS_STATEIMAGEMASK .

pszText

Тип: LPTSTR

Указатель на строку, завершающуюся значением NULL, которая содержит текст элемента, если в структуре указаны атрибуты элемента. Если этот элемент является LPSTR_TEXTCALLBACK значением, родительское окно отвечает за хранение имени. В этом случае элемент управления в виде дерева отправляет родительскому окну TVN_GETDISPINFO код уведомления, когда ему требуется текст элемента для отображения, сортировки или редактирования, а TVN_SETDISPINFO код уведомления при изменении текста элемента. Если структура получает атрибуты элемента, этот элемент является адресом буфера, который получает текст элемента. Обратите внимание, что хотя элемент управления "Представление в виде дерева" позволяет хранить строку любой длины в виде текста элемента, отображаются только первые 260 символов.

cchTextMax

Тип: int

Размер буфера, на который указывает элемент pszText , в символах. Если эта структура используется для задания атрибутов элемента, этот элемент игнорируется.

iImage

Тип: int

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

iSelectedImage

Тип: int

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

cChildren

Тип: int

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

Значение Значение
Нуля
У элемента нет дочерних элементов.
Одной
Элемент имеет один или несколько дочерних элементов.
I_CHILDRENCALLBACK
Родительское окно отслеживает, содержит ли элемент дочерние элементы. В этом случае, когда элемент управления в виде дерева должен отображать элемент, элемент управления отправляет родительскому элементу код уведомления TVN_GETDISPINFO , чтобы определить, есть ли у элемента дочерние элементы. Если элемент управления в виде дерева имеет стиль TVS_HASBUTTONS , он использует этот элемент, чтобы определить, следует ли отображать кнопку, указывающую на наличие дочерних элементов. Этот элемент можно использовать для принудительного отображения кнопки в элементе управления, даже если в элементе нет вставленных дочерних элементов. Это позволяет отображать кнопку, минимизируя использование памяти элемента управления, вставляя дочерние элементы только в том случае, если элемент виден или развернут.
I_CHILDRENAUTO

Версия 6.0предназначена для внутреннего использования; не рекомендуется для использования в приложениях. Элемент управления представлением в виде дерева автоматически определяет, содержит ли элемент дочерние элементы.

Примечание Этот флаг может не поддерживаться в будущих версиях Comctl32.dll. Кроме того, этот флаг не определен в commctrl.h. Добавьте следующее определение в исходные файлы приложения, чтобы использовать флаг :
#define I_CHILDRENAUTO (-2)
 

lParam

Тип: LPARAM

Значение, которое необходимо связать с элементом.

iIntegral

Тип: int

Высота элемента, кратная стандартной высоте элемента (см . TVM_SETITEMHEIGHT). Например, если задать для этого элемента значение 2, элемент будет в два раза выше стандартной высоты. Элемент управления в виде дерева не рисует дополнительную область, которая отображается под содержимым элемента, но это пространство может использоваться приложением для рисования при использовании пользовательского рисования. Приложения, которые не используют пользовательское рисование, должны задать для этого значения значение 1, так как в противном случае поведение не определено.

uStateEx

Тип: UINT

Internet Обозреватель 6 и более поздних версий. Одно или несколько (как побитовая комбинация) следующих расширенных состояний.

Значение Значение
TVIS_EX_DISABLED
Windows Vista и более поздних версий. Создает элемент управления, нарисованный серым цветом, с которым пользователь не может взаимодействовать.
TVIS_EX_FLAT
Создает плоский элемент— элемент является виртуальным и не отображается в дереве; вместо этого его дочерние элементы занимают свое место в иерархии дерева. Это состояние допустимо только при добавлении элемента в элемент управления в виде дерева.
TVIS_EX_HWND
Создает отдельный HWND для элемента. Это состояние допустимо только при добавлении элемента в элемент управления в виде дерева.

hwnd

Тип: HWND

Internet Обозреватель 6 и более поздних версий. Не используется; значение должно иметь значение NULL.

iExpandedImage

Тип: int

Internet Обозреватель 6 и более поздних версий. Индекс изображения в списке изображений элемента управления для отображения, когда элемент находится в развернутом состоянии.

iReserved

Тип: int

Зарезервированный член. Не используйте.

Комментарии

Примечание

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

Требования

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

См. также раздел

Добавление элементов Tree-View