TreeView

Discussion in 'WASM.WIN32' started by Dloger, Jan 31, 2008.

  1. Dloger

    Dloger Николай

    Blog Posts:
    0
    Joined:
    Dec 4, 2007
    Messages:
    7
    Location:
    Астрахань
    при оброботки сообщения от TVN_SELCHANGED TreeView только первый раз возрощается правильный хендел итема, а дальше не получается получить правиль ный хендел.
     
  2. twgt

    twgt New Member

    Blog Posts:
    0
    Joined:
    Jan 15, 2007
    Messages:
    1,494
    lparam указывает на такую структуру:
    Code (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 Николай

    Blog Posts:
    0
    Joined:
    Dec 4, 2007
    Messages:
    7
    Location:
    Астрахань
    Это я знаю.
    Но я не могу получить правильный хендел ни через itemOld.hitem, ни через itemNew.hitem. Только при первом нажатии работает, а дальше ни чего не получается.
     
  4. rmn

    rmn Well-Known Member

    Blog Posts:
    0
    Joined:
    Nov 23, 2004
    Messages:
    2,347
    показывай код
     
  5. Dloger

    Dloger Николай

    Blog Posts:
    0
    Joined:
    Dec 4, 2007
    Messages:
    7
    Location:
    Астрахань
    Code (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

    Blog Posts:
    0
    Joined:
    May 26, 2004
    Messages:
    178
    Location:
    Тирасполь
    Dloger


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

    rmn Well-Known Member

    Blog Posts:
    0
    Joined:
    Nov 23, 2004
    Messages:
    2,347
    TVIF_STATE тут не нужен, а вот адрес буфера в node.pszText записать нужно перед вызовом SendMessage
     
  8. Dloger

    Dloger Николай

    Blog Posts:
    0
    Joined:
    Dec 4, 2007
    Messages:
    7
    Location:
    Астрахань
    Большое спасибо.
    Только я не понимаю, почему при первом клике возрощалось правильное значение.
    И подскажите как разместить буфер локально в процедуре, а не в секции .data