当前位置: 代码迷 >> VC/MFC >> masm汇编。treeview的HTREEVIEW有关问题
  详细解决方案

masm汇编。treeview的HTREEVIEW有关问题

热度:186   发布时间:2016-05-02 03:48:32.0
masm汇编。treeview的HTREEVIEW问题。
我想创建一个树Treeview。用SendDlgItemMessage给树窗口发消息TVM_INSERTITEM创建了一个根节点。然后应该返回一个HTREEVIEW的类型句柄在寄存器eax中吧。
事实的确是这样的,我用eax中的值作为父节点的句柄可以创建子节点。
但是如果我用mov hParent,eax之后,再用hParent(dw型)无法创建子节点。会提示 invalid struction operands.  
但我查了一些资料都说HTREEVIEW是dw类型。不得其解。

部分源码
.data
hParent  dd   ?
……
invoke SendDlgItemMessage,hWnd,TVW,TVM_INSERTITEM,0,addr tvinsert 
mov hParent, eax 
mov tvinsert.hParent, hParent  (如果是 ‘mov tvinsert.hParent, eax’ 就可以)
……

------解决思路----------------------
HTREEITEM TreeView_InsertItem(
    HWND hwndTV,
    LPTVINSERTSTRUCT lpis
);
------解决思路----------------------
mov tvinsert.hParent, hParent 

要求 2个 变量的 地址 , cpu 地址总线 只能 发一个变量的地址, 所以 2个 内存变量 不能在一条指令 中处理。
这就是  DMA (direct memory access)的 作用
  相关解决方案