при оброботки сообщения от TVN_SELCHANGED TreeView только первый раз возрощается правильный хендел итема, а дальше не получается получить правиль ный хендел.
lparam указывает на такую структуру: Code (Text): typedef struct tagNMTREEVIEW { NMHDR hdr; UINT action; TVITEM itemOld; TVITEM itemNew; POINT ptDrag; } NMTREEVIEW, *LPNMTREEVIEW;
Это я знаю. Но я не могу получить правильный хендел ни через itemOld.hitem, ни через itemNew.hitem. Только при первом нажатии работает, а дальше ни чего не получается.
Code (Text): ... mov edi,lParam assume edi: ptr NM_TREEVIEW mov eax, [edi].hdr.code cmp eax,TVN_SELCHANGED je @@tvnselchanged ... @@tvnselchanged: ... push [edi].itemNew.hItem pop node.hItem push TVIF_TEXT or TVIF_HANDLE pop node.imask push 128 pop node.cchTextMax invoke SendMessage,hTreeView, TVM_GETITEM, 0, addr node invoke SetWindowText, hwnd, node.pszText ...
Большое спасибо. Только я не понимаю, почему при первом клике возрощалось правильное значение. И подскажите как разместить буфер локально в процедуре, а не в секции .data