Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Программирование на C / C++" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Элемент управления CTreeCtrl
Visual C++ Лучшие статьи с сайта www.p-lib.pp.ru |
Главная | Новости | Статьи | Каталог | Софт | Регистрация | Поиск |
Новые статьи на сайте |
1.
Класс CRecordView Объекты этого класса предоставляют для изображения записей базы данных в элементах управления форму, которая непосредственно соединена с объектом CRecordset. 2. Поиск и сортировка записей В статье описаны функции поиска и сортировки в элементе управления ListCtrl. 3. Меню и акселераторы В этой статье я вас ознакомлю с классом CMenu. С помощью этого класса можно создавать меню в MFC приложениях. Так же будет рассмотрен вопрос об использовании акселераторов. 4. Разделяемая память в динамической библиотеке В этой статье рассмотрен вопрос о разделяемой памяти в динамической библиотеке. Также приведенные примеры демонстрируют примеры использования общей памяти. 5. Битовые образы В операционной системе Windows рассматриваются два типа растровых изображений: аппаратно-зависимые и аппаратно-независимые. В этой статье рассматриваются аппаратно-зависимые изображения и их поддержку в библиотеке MFC. 6. Как в Edit-Control поместить каретку после текста Чтобы поместить выделенный кусок текста в edit control, можно использовать сообщение EM_SETSEL. Если начальная и конечная позиции выделенного текста совпадают, то каретка просто помещается в эту позицию. 7. Как разрешить меню для Edit Control В CDialog или другом окне, которое не имеет меню edit для вырезания (cutting), копирования (copying), и вставки (pasting), контролы CEdit обрабатывают эти функции через обычные Windows акселераторы. Однако в стандартном приложении MDI или SDI эти опции запрещены. Как же исправить эту ситуацию? 8. Как программно добавить текст в Edit Control В основном, приложения Windows используютс элемент управления редактирования для отображения текста. Иногда, приложению требуется добавить текст в конец окна редактирования вместо того, чтобы заменить весь текст. Существует два способа сделать это в Windows. 9. Иконка на кнопке Забавная штука, получается, очень симпатично выглядит кнопка с рисунком, но стоит добавить манифест к файлу, как сразу эти кнопки отображаются обычными. В этой статье приводится функция, которая и загоняет в кнопку иконку. 10. Как закрасить диалог цветом В статье приводится пример закрашивания диалога цветом. Этот пример хорошь тем, что можно использовать любой, даже не стандартный способ вызова диалога. |
Свежие компьютерные новости |
02.03.2006
Концепт-вирус заражает и ПК, и смартфоны 02.03.2006 Ноутбук Fujitsu Siemens Lifebook Q2010 весит один килограмм 02.03.2006 VMware объявляет конкурс на лучшее виртуальное приложение 02.03.2006 Новое ПО Symantec поможет предотвратить утерю данных 02.03.2006 IBM выпустила математический сопроцессор 02.03.2006 Квантовые компьютеры будут работать на "точках" 01.03.2006 Memory Stick PRO Duo 4 Гб от SanDisk 01.03.2006 Три флешки от PQI |
Элемент управления CTreeCtrl |
Кроме возможности выводить записи последовательных списков при помощи таких элементов, как список или просмотр списка, Windows предоставляет возможность отображения (и управления) списков, организованных по принципу дерева. Для этого поддерживается элемент управления "просмотр дерева" (TREE VIEW). Первое, для чего этот элемент использует система Windows — это организация просмотра дерева каталогов, а также различных индексов в справочных файлах и т. п. Древовидные структуры предполагают наличие некоторой иерархии узлов и поэтому естественно, что данный элемент управления может применяться только для информации, имеющей иерархическую структуру. Для создания этого элемента в библиотеке MFC предназначен класс CTreeCtrl. Каждая запись в просмотре дерева состоит из текстовой строки (надписи) и заданного битового изображения и может иметь одну или более подзаписей, связанных с ней. Щелкнув мышью по записи, пользователь может развернуть или свернуть список связанных с записью подзаписей. На экране подзаписи могут соединяться с записью линиями для того, чтобы наглядно представлялась их взаимосвязь. Любая запись просмотра дерева может иметь связанные с ней подзаписи, которые называются дочерними записями, а сама запись называется родительской записью. При выводе на экран дочерние записи изображаются ниже родительской и со сдвигом в сторону для наглядного представления их зависимости от родительской записи. Запись, которая не имеет родительской и, следовательно, лежит на самом верхнем уровне иерархии, называется корневой записью. Кроме класса CTreeCtrl, библиотека MFC содержит еще и класс CTree View. Класс CTreeCtrl предназначен для реализации просмотра дерева в блоке диалога, особенно при наличии в блоке диалога других элементов управления. Напротив, если просмотр дерева должен быть реализован в архитектуре "документ/представление" и будет занимать собой все окно, автоматически изменяя свои размеры при изменении размеров родительского окна, обрабатывать сообщения от меню и т. п., то необходимо использовать класс CTreeView. Сортировка и поискФункции этой группы предназначены для поиска записей по различным критериям, но в отличие от последовательных списков для просмотра дерева поиск осуществляется по тому, как искомая запись соотносится с другими. HTREEITEM CTreeCtrl::GetNextItem ( HTREEITEM hItem, UINT nCode ) Возвращает дескриптор следующей записи, подходящей по заданным параметрам, или NULL, если таковая не найдена. Параметр hltem определяет дескриптор записи, относительно которой производится поиск. Параметр nCode задает критерии поиска и может содержать один из следующих параметров: Если нужно получить записи, лежащие на том же уровне иерархии, что и данная запись, то можно воспользоваться следующими функциями: HTREEITEM CTreeCtrl::GetNextSiblingltem ( HTREEITEM hItem ) Возвращает дескриптор следующей записи. HTREEITEM CTreeCtrl::GetPrevSiblingltem ( HTREEITEM hItem ) Возвращает дескриптор предыдущей записи. Следующая функция возвращает дескриптор родительской записи для записи, заданной параметром hltem: HTREEITEM CTreeCtrl::GetParentItem ( HTREEITEM hItem ) Класс CTreeCtrl позволяет определить запись по координатам и, если необходимо, узнать, на какой записи находится курсор мыши. Для этого следует воспользоваться функцией HitTest, например, в обработчике нажатия кнопки мыши: HTREEITEM CTreeCtrl::HitTest ( CPoint pt, UINT* pFlags ) или HTREEITEM CTreeCtrl::HitTest ( TV_HITTESTINFO* pHitTestlnfo ) Возвращает дескриптор записи, которой принадлежит указанная точка, или NULL, если точка не принадлежит ни одной записи. Параметр pFlags первой версии функции является указателем на переменную целого типа, принимающую результаты проверки. Может иметь одно или больше значений, указанных в описании параметра flags структуры TV_HITTESTINFO. Параметр pHitTestlnfo является указателем на структуру типа TV_HITTESTINFO, содержащую координаты точки для проверки и принимающую результаты проверки. Приведем описание структуры TV_HITTESTINFO: typedef struct _TV_HITTESTINFO ( POINT pt; UINT flags; HTREEITEM hItem; } TV_HITTESTINFQ; Поле flags используется для хранения результатов проверки и может содержать комбинацию следующих значений: К этой же группе я отнес функции, осуществляющие сортировку записей в просмотре дерева. Их две. Первая предназначена для сортировки по алфавиту дочерних записей родительской записи. Это функция SortChildren. Она определяет уровни дочерних записей, которые должны быть отсортированы: BOOL CTreeCtrl::SortChildren ( HTREEITEM hItem ) Сортирует дочерние записи родительской записи, указанной в hltem. Если значение параметра hltem равно NULL, то будет отсортирован весь просмотр дерева. Если же необходимо задать собственный критерий для сортировки записей, то это позволяет сделать функция SortChildrenCB: BOOL CTreeCtrl::SortChildrenCB ( LPTV_SORTCB pSort ) Сортирует дочерние записи, используя определяемую приложением функцию сортировки. Параметр pSort является указателем на структуру TV_SORTCB: typedef struct _TV_SORTCB { HTREEITEM hParent; PFNTVCOMPARE IpfnCompare; LPARAM IParam; } TV_SORTCB; Поле IpfnCompare является указателем на определяемую приложением функцию сортировки записей. Она вызывается всякий раз, когда необходимо сравнить две записи и имеет описание: int CALLBACK CompareFunc ( LPARAM iParam1, LPARAM iParam2, LPARAM iParamSort ) Возвращает отрицательное значение, если первая запись должна предшествовать второй, положительное, если первая запись должна следовать за второй, и нуль, если записи равны. Параметры функции сортировки аналогичны параметрам функции сортировки для просмотра списка, которая была описана в соответствующем разделе. Функции для работы с просмотром дерева в целомКогда ветка дочерних записей развернута, то они изображаются с некоторым сдвигом относительно родительской записи. Для определения и изменения сдвига дочерней записи относительно родительской предназначены функции: UINT CTreeCtrl::GetIndent() Возвращает сдвиг (в пикселах) дочерней записи относительно родительской. void CTreeCtrl::SetIndent(UINT nIndent) Задает сдвиг (в пикселах) дочерней записи относительно родительской. Если задается значение меньшее, чем определяемое системой, то функция игнорируется. |
Книги с Озона |
Последнии статьи по Delphi |
Советую посетить |
Портал
для Delphi программиста - Быстро развивающийся портал о
программирование на языке Pascal/Delphi. Статьи, исходники, компоненты,
справочники, мануалы, FaQ, программы. |
Дружественные рассылки |
![]() |
Замечания и предложения отправляйте на E-Mail указанный ниже. С уважением Ковязин Дмитрий (admin@p-lib.pp.ru). |
В избранное | ||