Вниз
Скачать: CL | DM;

TTreeView. Отслеживаем изменение состояние узла   Найти похожие ветки 

← →
AlexDBases ©   (2003-12-23 10:56) [0]

Как узнать что состояние какого либо узла изменилось.
Конкретнее - как узнать (какое событие) происходить при нажатии на checkbox узла дерева.
Заранее спасибо!


← →
olookin ©   (2003-12-23 11:06) [1]

Пара OnCollapsed/OnCollapsing - свертывание узла
Пара Onexpanded/OnExpanding - развертывание узла


← →
AlexDBases ©   (2003-12-23 11:17) [2]

ты вообще о чем?.
Сори я наверно виноват. Checkbox - это такой квадратик с галочкой =)))) . Свернуть и развернуть узел я могу...=). Это не выход.


← →
Тимохов ©   (2003-12-23 11:23) [3]

Анализируй OnClick или что-там еще (сам разберешься) и самое главное получай инфу о том, куда пришелся клик с помощью function GetHitTestInfoAt(X, Y: Integer): THitTests;


← →
Тимохов ©   (2003-12-23 11:24) [4]

И вообще пример по GetHitTestInfoAt почитай - там все есть.


← →
alexdbases ©   (2003-12-23 11:29) [5]

нашел в MSDN
#define UM_CHECKSTATECHANGE (WM_USER + 100)case WM_NOTIFY:
{
LPNMHDR lpnmh = (LPNMHDR) lParam;
TVHITTESTINFO ht = {0};

if(lpnmh->code == NM_CLICK) && (lpnmh->idFrom == IDC_MYTREE))
{
DWORD dwpos = GetMessagePos(); // include <windowsx.h> and <windows.h> header files
ht.pt.x = GET_X_LPARAM(dwpos);
ht.pt.y = GET_Y_LPARAM(dwpos);
MapWindowPoints(HWND_DESKTOP, lpnmh->hwndFrom, &ht.pt, 1); TreeView_HitTest(lpnmh->hwndFrom, &ht);

if(TVHT_ONITEMSTATEICON & ht.flags)
{

PostMessage(hWnd, UM_CHECKSTATECHANGE, 0, (LPARAM)ht.hItem);
}
}
}
break;case UM_CHECKSTATECHANGE:
{
HTREEITEM hItemChanged = (HTREEITEM)lParam;
/*
Retrieve the new checked state of the item and handle the notification.
*/
}
break;


Но вот пака сложности с переводом на delphi


← →
Тимохов ©   (2003-12-23 11:30) [6]

А все-таки почитай выше.
Это уже реализовано в TTreeView.


← →
alexdbases ©   (2003-12-23 11:46) [7]

Извини ты прав все вроде разобрался.......спасибо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
14-25524
NeyroSpace
2003-12-19 15:42
2004.01.09
Что с принтером (или с LPT портом)?


4-25640
Колян_К
2003-11-06 17:36
2004.01.09
Как из своей проги закрыть чужое окно


1-25297
Тимохов
2003-12-16 14:20
2004.01.09
Правила вызова AddRef


1-25393
Sasha_M
2003-12-24 19:30
2004.01.09
Как в Tlistview при нажатии клавиши отметить выбранный


1-25306
Мефодий
2003-12-22 22:09
2004.01.09
Эмуляция клика мыши в другой прогроамме




   Наверх