Форум: "Основная";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Основная";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c