TreeView

Тема в разделе "WASM.WIN32", создана пользователем Dloger, 31 янв 2008.

  1. Dloger

    Dloger Николай

    Публикаций:
    0
    Регистрация:
    4 дек 2007
    Сообщения:
    7
    Адрес:
    Астрахань
    при оброботки сообщения от TVN_SELCHANGED TreeView только первый раз возрощается правильный хендел итема, а дальше не получается получить правиль ный хендел.
     
  2. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    lparam указывает на такую структуру:
    Код (Text):
    1. typedef struct tagNMTREEVIEW {
    2.     NMHDR hdr;
    3.     UINT action;
    4.     TVITEM itemOld;
    5.     TVITEM itemNew;
    6.     POINT ptDrag;
    7. } NMTREEVIEW, *LPNMTREEVIEW;
     
  3. Dloger

    Dloger Николай

    Публикаций:
    0
    Регистрация:
    4 дек 2007
    Сообщения:
    7
    Адрес:
    Астрахань
    Это я знаю.
    Но я не могу получить правильный хендел ни через itemOld.hitem, ни через itemNew.hitem. Только при первом нажатии работает, а дальше ни чего не получается.
     
  4. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    показывай код
     
  5. Dloger

    Dloger Николай

    Публикаций:
    0
    Регистрация:
    4 дек 2007
    Сообщения:
    7
    Адрес:
    Астрахань
    Код (Text):
    1.  
    2. ...
    3.   mov edi,lParam
    4.   assume edi: ptr NM_TREEVIEW
    5.   mov eax, [edi].hdr.code
    6.   cmp eax,TVN_SELCHANGED
    7.   je @@tvnselchanged
    8.  
    9. ...
    10.  
    11. @@tvnselchanged:
    12.  
    13. ...
    14.  
    15.   push [edi].itemNew.hItem
    16.   pop node.hItem
    17.   push TVIF_TEXT or TVIF_HANDLE
    18.   pop node.imask
    19.   push 128
    20.   pop node.cchTextMax
    21.   invoke SendMessage,hTreeView, TVM_GETITEM, 0, addr node
    22.   invoke SetWindowText, hwnd, node.pszText
    23.  
    24. ...
     
  6. irrona

    irrona Member

    Публикаций:
    0
    Регистрация:
    26 май 2004
    Сообщения:
    178
    Адрес:
    Тирасполь
    Dloger


    Код (Text):
    1. push TVIF_TEXT or TVIF_HANDLE
    Кажется не хватает TVIF_STATE
     
  7. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    TVIF_STATE тут не нужен, а вот адрес буфера в node.pszText записать нужно перед вызовом SendMessage
     
  8. Dloger

    Dloger Николай

    Публикаций:
    0
    Регистрация:
    4 дек 2007
    Сообщения:
    7
    Адрес:
    Астрахань
    Большое спасибо.
    Только я не понимаю, почему при первом клике возрощалось правильное значение.
    И подскажите как разместить буфер локально в процедуре, а не в секции .data