INT_PTR APIENTRY MainProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
char tmp[100];
int Index;
switch (msg)
{
case WM_INITDIALOG:
// создаем WC_TREEVIEW ("SysTreeView32") ...
break;
case WM_NOTIFY:
switch (((LPNMHDR) lParam)->code)
{
case TVN_SELCHANGING:
Index = ... ; // как узнать
wsprintf(tmp, "%i", Index);
MessageBox(hwnd, tmp, "Выбранный элемент", 0);
break;
}
}
return FALSE ;
}
Индекс выбранного элемента WC_TREEVIEW
Как у контрола WC_TREEVIEW ("SysTreeView32") узнать индекс выбранного элемента?
(Существует ли аналог TreeView1->Selected->Index из С++Builder?)
Рассматривал (NM_TREEVIEW*) lParam в обработчике TVN_SELCHANGING, но там такой инфы не нашел.
Код:
Код:
case WM_NOTIFY:
{
LPNMTREEVIEW pnmtv = (LPNMTREEVIEW) lParam;
if (pnmtv -> hdr.code == TVN_SELCHANGED)
{
char szBuffer[25] = "";
TVITEMEX tvitem = {0};
tvitem.hItem = TreeView_GetSelection(hTreeView);
tvitem.mask = TVIF_TEXT;
tvitem.pszText = szBuffer;
tvitem.cchTextMax = 25;
TreeView_GetItem(hTreeView, &tvitem);
MessageBox(hWnd, szBuffer, "", 0);
}
}
break;
{
LPNMTREEVIEW pnmtv = (LPNMTREEVIEW) lParam;
if (pnmtv -> hdr.code == TVN_SELCHANGED)
{
char szBuffer[25] = "";
TVITEMEX tvitem = {0};
tvitem.hItem = TreeView_GetSelection(hTreeView);
tvitem.mask = TVIF_TEXT;
tvitem.pszText = szBuffer;
tvitem.cchTextMax = 25;
TreeView_GetItem(hTreeView, &tvitem);
MessageBox(hWnd, szBuffer, "", 0);
}
}
break;
в поле tvitem.mask указываешь то что тебе нужно я к прис=меру показал как получить заголовак елемента