Сведения об элементах управления Tree-View
Элемент управления "Представление дерева" — это окно, в котором отображается иерархический список элементов, таких как заголовки документа, записи в индексе или файлы и каталоги на диске. Каждый элемент состоит из ярлыка и необязательного битового изображения, и каждый элемент может иметь список подэлементов, связанных с ним. Пользователь может развернуть или свернуть связанный список вложенных объектов, щелкнув на объект.
На следующем рисунке показан простой элемент управления представлением дерева с корневым узлом, развернутым узлом и свернутым узлом. Элемент управления использует одно растровое изображение для выбранного элемента и другое растровое изображение для других элементов.
снимок экрана
После создания элемента управления tree-view, вы добавляете, удаляете, упорядочиваете или иным образом управляете элементами, отправляя сообщения элементу управления. Каждое сообщение содержит один или несколько соответствующих макросов, которые можно использовать вместо явной отправки сообщения.
В этом разделе рассматриваются следующие разделы.
- Tree-View стили
- родительских и дочерних элементов
- Метки элементов
- Tree-View редактирование меток
- Tree-View позиция элемента
- Обзор состояния элементов Tree-View
- выбор элементов
- Информация о товарах
- Tree-View списки изображений
- операции перетаскивания
- Tree-View Уведомления об управлении сообщениями
- По умолчанию Tree-View Обработка управляющих сообщений
- Связанные темы
Стили Tree-View
Стили представления дерева управляют аспектами внешнего вида элемента управления "Дерево". При создании элемента управления "Представление дерева" задаются начальные стили. Вы можете получить и изменить стили после создания элемента управления "Представление дерева" с помощью функций GetWindowLong и SetWindowLong.
Стиль TVS_HASLINES улучшает графическое представление иерархии древовидного элемента управления, рисуя линии, которые связывают дочерние элементы с родительским элементом, как показано на рисунке ниже.
Сам по себе этот стиль не рисует линии в самом корне иерархии. Для этого необходимо объединить стили TVS_HASLINES и TVS_LINESATROOT. Результат показан на следующем рисунке.
Пользователь может развернуть или свернуть список дочерних элементов родительского элемента, дважды щелкнув родительский элемент. Элемент управления "Представление дерева", имеющий стиль TVS_HASBUTTONS, добавляет кнопку слева от каждого родительского элемента. Пользователь может один раз нажать на кнопку, вместо двойного щелчка на родительском объекте, чтобы развернуть или свернуть дочерний элемент. TVS_HASBUTTONS не добавляет кнопки к элементам на корневом уровне иерархии. Для этого необходимо объединить TVS_HASLINES, TVS_LINESATROOTи TVS_HASBUTTONS. Это сочетание стилей показано на следующем рисунке.
Стиль TVS_CHECKBOXES создает флажки рядом с каждым элементом. Если вы хотите использовать стиль флажка, необходимо задать стиль TVS_CHECKBOXES (с SetWindowLong) после создания элемента управления "Представление дерева" и перед заполнением дерева. В противном случае флажки могут казаться не отмеченными в зависимости от проблем с временем. На следующем рисунке показан стиль флажка.
Стиль TVS_FULLROWSELECT приводит к тому, что выделение распространяется на всю ширину элемента управления, а не только на сам элемент. На следующем рисунке показан этот стиль.
Стиль TVS_EDITLABELS позволяет пользователю изменять метки элементов представления дерева. Для получения дополнительных сведений о редактировании меток см. Tree-ViewРедактирование меток.
Дополнительные сведения об этих и других стилях см. в разделе Tree-View Стили окон управления.
Родительские и дочерние элементы
Любой элемент в элементе управления "Представление дерева" может содержать список дочерних элементов, называемых дочерними элементами, связанными с ним. Элемент с одним или несколькими дочерними элементами называется родительским элементом. Дочерний элемент отображается под родительским элементом и отступен, чтобы указать, что он подчинен родительскому элементу. Элемент, не имеющий родительского элемента, отображается в верхней части иерархии и называется корневым элементом.
Чтобы добавить элемент в элемент управления деревом, отправьте TVM_INSERTITEM сообщение в элемент управления. Сообщение возвращает дескриптор типу HTREEITEM, который однозначно идентифицирует элемент. При добавлении элемента необходимо указать дескриптор родительского элемента нового элемента. Если указать NULL или значение TVI_ROOT вместо родительского элемента в структуре TVINSERTSTRUCT, элемент добавляется в качестве корневого элемента.
В любой момент времени состояние списка дочерних элементов родительского элемента может быть развернуто или свернуто. При развертывании состояния дочерние элементы отображаются под родительским элементом. При сворачивании дочерние элементы не отображаются. Список автоматически переключается между развернутыми и свернутыми состояниями, когда пользователь дважды щелкает родительский элемент или, если родительский элемент имеет стиль TVS_HASBUTTONS, когда пользователь нажимает кнопку, связанную с родительским элементом. Приложение может развернуть или свернуть дочерние элементы с помощью сообщения TVM_EXPAND.
Элемент управления представлением дерева отправляет родительскому окну уведомление TVN_ITEMEXPANDING, когда список дочерних элементов для элемента-родителя будет развернут или свернут. Уведомление дает приложению возможность предотвратить изменение или задать какие-либо атрибуты родительского элемента, зависящее от состояния списка дочерних элементов. После изменения состояния списка элемент управления в виде дерева отправляет родительскому окну уведомление TVN_ITEMEXPANDED.
При развертывании списка дочерних элементов он будет с отступом относительно родительского элемента. Можно задать объем отступа с помощью сообщения TVM_SETINDENT или получить текущую сумму с помощью сообщения TVM_GETINDENT.
Элемент управления представлением дерева использует память, выделенную из кучы процесса, создающего элемент управления "Представление дерева". Максимальное количество элементов в древовидном просмотре зависит от объема доступной памяти в куче.
Метки элементов
Обычно при добавлении элемента в элемент управления "Представление дерева" указывается текст метки элемента. Сообщение TVM_INSERTITEM содержит структуру TVITEM, которая определяет свойства элемента, включая строку, содержащую текст метки.
Элемент управления "Представление дерева" выделяет память для хранения каждого элемента; Текст меток элемента занимает значительную часть этой памяти. Если приложение поддерживает копию строк в элементе управления "Дерево", можно уменьшить требования к памяти элемента управления, указав значение LPSTR_TEXTCALLBACK в элементе pszText члена TVITEM вместо передачи фактических строк в представление дерева. Использование LPSTR_TEXTCALLBACK приводит к тому, что элемент управления TreeView извлекает текст метки элемента из родительского окна всякий раз, когда элемент должен быть перерисован. Чтобы получить текст, элемент управления "деревообозреватель" отправляет сообщение уведомления TVN_GETDISPINFO, которое содержит адрес структуры NMTVDISPINFO. Родительское окно должно заполнить соответствующие элементы включенной структуры.
Редактирование метки Tree-View
Пользователь может напрямую редактировать метки элементов в управляющем элементе с древовидным представлением, который имеет стиль TVS_EDITLABELS. Пользователь начинает редактирование, щелкнув метку элемента с фокусом. Приложение начинает редактирование с помощью сообщения TVM_EDITLABEL. Элемент управления "Представление дерева" уведомляет родительское окно при начале редактирования и при отмене или завершении. После завершения редактирования родительское окно отвечает за обновление метки элемента при необходимости.
Когда начинается редактирование меток, элемент управления TreeView отправляет родительскому окну уведомляющее сообщение TVN_BEGINLABELEDIT. Обрабатывая это уведомление, приложение может разрешить редактирование некоторых меток и запретить редактирование других. Возврат нуля позволяет редактировать, а возврат ненулевого значения предотвращает это.
При отмене или завершении редактирования меток элемент управления TreeView отправляет родительскому окну уведомление сообщения TVN_ENDLABELEDIT. Параметр lParam — это адрес структурыNMTVDISPINFO. Параметр элемента — это структура TVITEM, которая идентифицирует элемент и включает измененный текст. Родительское окно отвечает за обновление метки элемента, если она хочет сохранить новую метку. Элемент pszTextTVITEM равен нулю при отмене редактирования.
При редактировании меток, обычно в ответ на сообщение уведомления TVN_BEGINLABELEDIT, можно получить идентификатор элемента управления редактированием с помощью сообщения TVM_GETEDITCONTROL. Вы можете отправить элемент управления редактированием сообщение EM_SETLIMITTEXT, чтобы ограничить объем вводимого пользователем текста, или создать подкласс для этого элемента управления, чтобы перехватывать и удалять недопустимые символы. Обратите внимание, что элемент управления редактирования отображается только после отправки TVN_BEGINLABELEDIT.
Tree-View положение элемента
Начальная позиция элемента устанавливается при добавлении элемента в элемент управления "Представление дерева" с помощью сообщения TVM_INSERTITEM. Сообщение включает структуру TVINSERTSTRUCT, которая указывает дескриптор родительского элемента и дескриптор элемента, после которого должен быть вставлен новый элемент. Второй дескриптор должен определить дочерний элемент заданного родительского элемента или одного из следующих значений: TVI_FIRST, TVI_LAST или TVI_SORT.
Если указана TVI_FIRST или TVI_LAST, элемент управления представлением дерева помещает новый элемент в начало или конец списка дочерних элементов данного родительского элемента. При указании TVI_SORT элемент управления представлением дерева вставляет новый элемент в список дочерних элементов в алфавитном порядке на основе текста меток элементов.
Список дочерних элементов родительского элемента можно отсортировать в алфавитном порядке с помощью команды TVM_SORTCHILDREN. Сообщение содержит параметр, указывающий, сортируются ли все уровни дочерних элементов, происходящих от заданного родительского элемента, в алфавитном порядке.
Сообщение TVM_SORTCHILDRENCB позволяет сортировать дочерние элементы на основе заданных критериев. При использовании этого сообщения вы указываете функцию обратного вызова, определяемую приложением, которую элемент управления "Представление дерева" может вызывать всякий раз, когда необходимо решить относительный порядок двух дочерних элементов. Функция обратного вызова получает два 32-разрядных значения, определенных приложением для сравниваемых элементов, и третье 32-разрядное значение, указанное при отправке TVM_SORTCHILDRENCB.
Обзор состояний элементов Tree-View
Каждый элемент в элементе управления "Дерево" имеет текущее состояние. Сведения о состоянии каждого элемента включают набор битовых флагов, а также индексы списка изображений, указывающие изображение состояния элемента и изображение наложения. Битовые флаги указывают, выбран ли элемент, отключен ли, развернут ли и т. д. В большинстве случаев элемент управления "Представление дерева" автоматически задает состояние элемента для отражения действий пользователя, таких как выбор элемента. Однако можно также задать состояние элемента с помощью сообщения TVM_SETITEM и получить текущее состояние элемента с помощью сообщения TVM_GETITEM. Полный список состояний элементов см. в разделе Tree-View состояния элементов управления.
Текущее состояние элемента задается членом состояния структуры TVITEM. Элемент управления "Древовидный вид" может изменить состояние элемента, чтобы отразить действие пользователя, например выбор элемента или установка фокуса на элемент. Кроме того, приложение может изменить состояние элемента, чтобы отключить или скрыть элемент или указать изображение наложения или изображение состояния.
При указании или изменении состояния элемента член в TVITEM определяет, какие биты состояния нужно установить, а член состояния содержит новые значения для этих битов.
Чтобы задать изображение наложения для элемента, statemask должен включать значение TVIS_OVERLAYMASK, а состояние должно содержать индекс, начинающийся с единицы, изображения наложения, сдвинутого влево на 8 бит с помощью макроса INDEXTOOVERLAYMASK. Индекс может быть равен нулю, чтобы не указывать изображение наложения.
Изображение состояния отображается рядом с значком элемента, чтобы указать определенное приложением состояние. Образы состояния содержатся в списке образов состояния , который указывается путем отправки сообщения TVM_SETIMAGELIST. Чтобы задать образ состояния элемента, добавьте значение TVIS_STATEIMAGEMASK в член statemask структуры TVITEM. Биты с 12-го по 15-й члена состояния структуры указывают индекс изображения, которое должно быть нарисовано, в списке изображений состояния.
Чтобы задать индекс образа состояния, используйте INDEXTOSTATEIMAGEMASK. Этот макрос принимает индекс и задает биты 12–15 соответствующим образом. Чтобы указать, что элемент не имеет образа состояния, задайте для индекса нулевое значение. Это соглашение означает, что изображение ноль в списке образов состояния не может использоваться в качестве образа состояния. Чтобы изолировать биты с 12 по 15 состояния элемента, используйте маску TVIS_STATEIMAGEMASK. Дополнительные сведения о наложении и изображениях состояния см. в Tree-View списках изображений.
Выбор элемента
Элемент управления "древовидное представление" уведомляет родительское окно, когда выделение изменяется с одного элемента на другой, отправляя уведомления TVN_SELCHANGING и TVN_SELCHANGED. Оба уведомления включают значение, указывающее, является ли изменение результатом щелчка мыши или нажатия клавиши. Уведомления также содержат информацию об элементе, который становится выбранным, и элементе, который теряет выбор. Эти сведения можно использовать для задания атрибутов элементов, зависящих от состояния выбора элемента. Возврат TRUE в ответ на TVN_SELCHANGING предотвращает изменение выделения, а возврат FALSE позволяет его изменить.
Приложение может изменить выбор, отправив сообщение TVM_SELECTITEM.
Информация о товаре
Элементы управления "Дерево" поддерживают ряд сообщений, которые получают сведения о элементах в элементе управления.
Сообщение TVM_GETITEM позволяет извлечь дескриптор и атрибуты элемента. Атрибуты элемента включают текущее состояние, индексы изображений управления в списке выбранных и невыбранных битовых изображений элемента, флаг, указывающий, имеет ли элемент дочерние элементы, адрес строки метки элемента и пользовательское значение элемента в 32 бита.
Сообщение TVM_GETNEXTITEM извлекает элемент представления дерева, который несет указанную связь с текущим элементом. Сообщение может получить доступ к родительскому элементу, следующему или предыдущему видимому элементу, первому дочернему элементу и т. д.
Сообщение TVM_GETITEMRECT извлекает ограничивающий прямоугольник для элемента представления дерева. Сообщения TVM_GETCOUNT и TVM_GETVISIBLECOUNT извлекают количество элементов в элементе управления "Представление дерева" и количество элементов, которые могут быть полностью видимы в окне элемента управления "Дерево" соответственно. Вы можете убедиться, что определенный элемент отображается с помощью сообщения TVM_ENSUREVISIBLE.
Списки изображений Tree-View
Каждый элемент в элементе управления "Дерево" может иметь четыре битовых изображения, связанных с ним.
- Изображение, например открытая папка, отображаемое при выборе элемента.
- Изображение, например закрытая папка, отображается, когда элемент не выбран.
- Изображение наложения, нарисованное прозрачно по выбранному или неизбираемом изображению.
- Изображение состояния, которое является дополнительным изображением, отображаемым слева от выбранного или неизбираемого изображения. Вы можете использовать значки состояния, такие как установленные и снятые флажки, чтобы указать состояния элементов, определяемые приложением.
По умолчанию элемент управления "Представление дерева" не отображает изображения элементов. Чтобы отобразить изображения элементов, необходимо создать списки изображений и связать их с элементом управления. Дополнительные сведения о списках изображений см. в разделе Image Lists.
Элемент управления "Представление дерева" может содержать два списка изображений: обычный список изображений и список изображений состояния. Обычный список изображений хранит выбранные, неизбираемые и наложенные изображения. Список образов состояния хранит изображения состояния. Используйте функцию ImageList_Create для создания списка изображений и использования других функций списка изображений для добавления растровых изображений в список изображений. Затем, чтобы связать список изображений с элементом управления "Представление дерева", используйте сообщение TVM_SETIMAGELIST. Сообщение TVM_GETIMAGELIST извлекает дескриптор одного из списков изображений средства управления tree-view. Это сообщение полезно, если вам нужно добавить в список дополнительные изображения.
Помимо выбранных и неизбираемых изображений, обычный список изображений элемента управления "Дерево" может содержать до четырех наложенных изображений. Изображения наложения определяются одним индексом и предназначены для прозрачного рисования по выбранным и неизбираемым изображениям. Чтобы назначить индекс маски наложения изображениям в обычном списке изображений, вызовите функцию ImageList_SetOverlayImage.
По умолчанию все элементы отображают первое изображение в обычном списке изображений для выбранных и неизбираемых состояний. Кроме того, по умолчанию элементы не отображают изображения наложения или изображения состояний. Вы можете изменить это поведение по умолчанию для элемента, отправив TVM_INSERTITEM или TVM_SETITEM сообщение. Эти сообщения используют структуруTVITEMдля указания индексов списка изображений для элемента.
Чтобы указать выбранные и невыбранные изображения элемента, задайте биты TVIF_SELECTEDIMAGE и TVIF_IMAGE в члене маска структуры TVITEM и укажите индексы из обычного списка изображений элемента управления в членах iSelectImage и iImage. Кроме того, можно указать значение I_IMAGECALLBACK в iSelectImage и iImage вместо указания индексов. Это приводит к тому, что элемент управления запрашивает у родительского окна индекс списка изображений каждый раз, когда элемент должен быть перерисован. Элемент управления отправляет сообщение уведомления TVN_GETDISPINFO для получения индекса.
Чтобы связать изображение наложения с элементом, используйте макрос INDEXTOOVERLAYMASK, чтобы указать индекс маски наложения в состоянии члена структуры TVITEM элемента. Необходимо также задать TVIS_OVERLAYMASK биты в элементе stateMask. Индексы маски наложения начинаются с единицы, индекс ноль указывает, что изображение наложения не указано.
Образы состояния хранятся в отдельном списке образов состояния и определяются их индексом. Чтобы указать список образов состояния, отправьте TVM_SETIMAGELIST сообщение. В отличие от элемента управления представлением списка, который использует однобазовый индекс для идентификации изображений состояний, изображения состояния древовидного элемента управления определяются нулевым индексом. Однако индекс нуля указывает, что элемент не имеет образа состояния. Следовательно, изображение ноль нельзя использовать в качестве состояния изображения. Дополнительные сведения о состояниях элементов и изображениях состояния см. в Tree-View обзоре состояний элементов.
Операции перетаскивания
Элемент управления "Дерево" уведомляет родительское окно, когда пользователь начинает перетаскивать элемент. Родительское окно получает уведомление TVN_BEGINDRAG, когда пользователь начинает перетаскивать элемент левой кнопкой мыши, и уведомление TVN_BEGINRDRAG, когда пользователь начинает перетаскивать правой кнопкой. Вы можете запретить отправку этих уведомлений элементу управления представления дерева, предоставив элементу управления представлением дерева стиль TVS_DISABLEDRAGDROP.
Чтобы получить изображение для отображения во время операции перетаскивания, воспользуйтесь сообщением TVM_CREATEDRAGIMAGE. Элемент управления "Древовидное представление" создает перетаскиваемую растровую картинку исходя из названия элемента, который перетаскивается. Затем элемент управления "Представление дерева" создает список изображений, добавляет к нему растровое изображение и возвращает дескриптор в список изображений.
Необходимо указать код, который фактически перетаскивает элемент. Обычно это включает использование возможностей перетаскивания функций списка изображений и обработки сообщений WM_MOUSEMOVE и WM_LBUTTONUP (или WM_RBUTTONUP), отправленных в родительское окно после начала операции перетаскивания.
Если элементы в элементе управления представлением дерева должны быть целевыми объектами операций перетаскивания, необходимо знать, когда указатель мыши находится на целевом элементе. Вы можете узнать, используя сообщение TVM_HITTEST. Укажите адрес структуры TVHITTESTINFO, содержащей текущие координаты указателя мыши. Когда функция sendMessage возвращает, структура содержит флаг, указывающий расположение указателя мыши относительно элемента управления представлением дерева. Если указатель находится над элементом в управлении "Древовидное представление", структура также содержит дескриптор этого элемента.
Можно указать, что элемент является целью операции перетаскивания, используя сообщение TVM_SETITEM, чтобы установить состояние элемента в значение TVIS_DROPHILITED. Элемент, имеющий это состояние, рисуется в стиле, используемом для указания целевого объекта перетаскивания.
Сообщения уведомлений о контроле Tree-View
Древовидный элемент управления отправляет в родительское окно следующие уведомления в виде сообщений WM_NOTIFY.
Уведомление | Описание |
---|---|
TVN_BEGINDRAG | Начинает операцию перетаскивания и вставки. |
TVN_BEGINLABELEDIT | Сигнализирует о начале встроенного редактирования меток. |
TVN_BEGINRDRAG | Сигнализирует о том, что правая кнопка мыши запустила операцию перетаскивания и сбрасывания. |
TVN_DELETEITEM | Сигнализирует об удалении определенного элемента. |
TVN_ENDLABELEDIT | Сигнализирует о завершении редактирования меток. |
TVN_GETDISPINFO | Запрашивает информацию, которая необходима элементу управления "Дерево" для отображения элемента. |
TVN_ITEMEXPANDED | Сигнализирует о том, что список дочерних элементов родительского элемента был развернут или свернут. |
TVN_ITEMEXPANDING | Сигнализирует о том, что список дочерних элементов родительского элемента будет развернут или свернут. |
TVN_KEYDOWN | Сигнализирует о событии нажатия клавиши. |
TVN_SELCHANGED | Сигнализирует о том, что выбор изменился с одного элемента на другой. |
TVN_SELCHANGING | Сигнализирует о том, что выбор будет изменен с одного элемента на другой. |
TVN_SETDISPINFO | Уведомляет родительское окно о том, что он должен обновить сведения, которые он поддерживает для элемента. |
Обработка управляющих сообщений Tree-View по умолчанию
В этом разделе описывается обработка сообщений окна, выполняемая элементом управления "Представление дерева". Сообщения, относящиеся к элементам управления представлением дерева, рассматриваются в других разделах этого документа, поэтому они здесь не включены.
Сообщение | Обработка выполнена |
---|---|
WM_COMMAND | Обрабатывает уведомления элемента редактирования EN_UPDATE и EN_KILLFOCUS и пересылает все остальные уведомления элемента редактирования в родительское окно. Нет возвращаемого значения. |
WM_CREATE | Выделяет память и инициализирует внутренние структуры данных. Он возвращает ноль, если успешно или -1 в противном случае. |
WM_DESTROY | Освобождает все системные ресурсы, связанные с элементом управления. Возвращает ноль. |
WM_ENABLE | Включает или отключает элемент управления. |
WM_ERASEBKGND | Очищает фон окна, используя текущий цвет фона для элемента управления "Дерево". Возвращает TRUE. |
WM_GETDLGCODE | Возвращает сочетание значений DLGC_WANTARROWS и DLGC_WANTCHARS. |
WM_GETFONT | Возвращает идентификатор текущего шрифта метки. |
WM_HSCROLL | Прокручивает элемент управления деревом. Он возвращает TRUE при прокрутке или FALSE в противном случае. |
WM_KEYDOWN | Отправляет сообщение уведомления TVN_KEYDOWN в родительское окно для всех клавиш. Отправляет NM_RETURN (представление дерева) уведомление, когда пользователь нажимает клавишу ВВОД. Он перемещает курсор, когда пользователь нажимает клавиши направления или клавиши PAGE UP, PAGE DOWN, HOME, END или BACKSPACE. Он прокручивает элемент управления "Представление дерева", когда пользователь нажимает клавишу CTRL в сочетании с указанными клавишами. Он возвращает TRUE, если ключ обрабатывается, или FALSE в противном случае. |
WM_KILLFOCUS | Перерисовывает элемент фокуса, если таковой имеется, и отправляет NM_KILLFOCUS (дерево) уведомление в родительское окно. |
WM_LBUTTONDBLCLK | Отменяет редактирование меток и, если элемент был дважды щелкнут, отправляет сообщение уведомления NM_DBLCLK (дерево) в родительское окно. Если родительское окно возвращает значение 0, элемент управления "Представление дерева" переключает развернутое состояние элемента, отправляя родительское окно TVN_ITEMEXPANDING и TVN_ITEMEXPANDED сообщения уведомлений. Нет возвращаемого значения. |
WM_LBUTTONDOWN | Переключает развернутое состояние, если пользователь щелкнул кнопку, связанную с родительским элементом. Если пользователь щелкнул метку элемента, элемент управления TreeView выбирает элемент и задает на нем фокус. Если пользователь перемещает мышь перед освобождением кнопки мыши, элемент управления "Представление дерева" начинает операцию перетаскивания. Нет возвращаемого значения. |
WM_PAINT | Закрашивает недопустимый регион элемента управления "Представление дерева". Возвращается ноль. Если параметр wParam неNULL, элемент управления предполагает, что значение является дескриптором контекста устройства (HDC) и выполняет отрисовку с использованием этого контекста устройства. |
WM_RBUTTONDOWN | Проверяет, был ли щелчок по элементу и началось ли перетаскивание. Если операция началась, она отправляет сообщение уведомления TVN_BEGINRDRAG в родительское окно и выделяет целевой объект удаления. В противном случае в родительское окно отправляется уведомление NM_RCLICK (представление дерева). Нет возвращаемого значения. |
WM_SETFOCUS | Перерисовывает элемент, если он в фокусе, и отправляет сообщение уведомления NM_SETFOCUS в родительское окно. |
WM_SETFONT | Сохраняет указанный дескриптор шрифта и перерисовывает элемент управления деревом с помощью нового шрифта. |
WM_SETREDRAW | Задает или очищает флаг перерисовки. Элемент управления "дерево" перерисовывается после установки флага перерисовки. Функция возвращает ноль. |
WM_SIZE | Перекомпьютерирует внутренние переменные, зависящие от размера клиентской области элемента управления "Представление дерева". Он возвращает TRUE. |
WM_STYLECHANGED | Отменяет редактирование меток и перерисовывает элемент управления "Представление дерева" с помощью новых стилей. Он возвращает ноль. |
WM_SYSCOLORCHANGE | Перерисовывает элемент управления "Представление дерева" с помощью нового цвета, если установлен флаг перерисовки. Возвращаемое значение отсутствует. |
WM_TIMER | Начинает редактирование метки элемента. Если пользователь щелкает метку элемента, находящегося в фокусе, элемент управления tree-view устанавливает таймер вместо того, чтобы сразу войти в режим редактирования. Таймер позволяет представлению дерева избежать ввода режима редактирования, если пользователь дважды щелкает метку. Он возвращает ноль. |
WM_VSCROLL | Прокручивает древовидный элемент управления. Он возвращает TRUE при прокрутке или FALSE в противном случае. |
Связанные разделы
-
Пример: CustDTv показывает кастомное рисование в TreeView (Q248496)