Уроки Iczelion'а




Урок 19. Tree View Control - часть 2


Затем мы проанализируем структуру NMHDR.

NMHDR struct DWORD hwndFrom DWORD ? idFrom DWORD ? code DWORD ? NMHDR ends

hwndFrom - это хэндл окна контрола, который послал это сообщение.

idFrom - это ID этого контрола.

code - это настоящее сообщение, которое контрол хотел послать pодительскому окну.

Уведомления от tree view начинаются с префикса TVN_.

Сообщения для tree view начинаются с TVM_, например TVM_CREATEDRAGIMAGE& Tree view посылает TVN_xxxx в поле code структуры NMHDR. родительское окно может посылать TVM_xxxx контролу.

Добавление пунктов в tree view

После того, как вы создадите контрол tree view, вы можете добавить в него пункты. Вы можете сделать это, послав контролу TVM_INSERTITEM.

TVM_INSERTITEM

  • wparam = 0;
  • lparam = pointer to a TV_INSERTSTRUCT;

Вам следует знать кое-какую терминологию, касающуюся взаимоотношений между item'ами в tree view.

Item может быть родительским, дочерним или тем и другим одновременно. родительский item - это такой item, с которым ассоциированы под-item'ы. В то же время, родительский item может быть дочерним по отношению к какому то другому. Item, у которого нет родителя, называется корнем (root). В tree view может быть много корневых элементов. Теперь мы проанализируем структуру TV_INSERTSTRUCT.

TV_INSERTSTRUCT STRUCT DWORD

hparent DWORD ? hInsertAfter DWORD ? ITEMTYpE <> TV_INSERTSTRUCT ENDS

hрarent - хэндл родительского item'а. Если этот параметр pавен TVI_ROOT или NULL, тогда item вставляется в корень tree view.

hInsertAfter - хэндл item'а, после которого будет вставляться новый item, или одно из следующих значений:

  • TVI_FIRST - вставка элемента в начало списка.
  • TVI_LAST - вставка элемента в конец списка.
  • TVI_SORT - вставка элемента в список согласно алфавитному порядку.

ITEMTYpE UNION itemex TVITEMEX <> item TVITEM <> ITEMTYpE ENDS

Мы будем использовать только TVITEM.

TV_ITEM STRUCT DWORD imask DWORD ? hItem DWORD ? state DWORD ? stateMask DWORD ? pszText DWORD ? cchTextMax DWORD ? iImage DWORD ? iSelectedImage DWORD ? cChildren DWORD ? lparam DWORD ? TV_ITEM ENDS




Содержание  Назад  Вперед