_ProcDlgMain proc uses ebx edi esi hWnd,wMsg,wParam,lParam
LOCAL @szBuffer[512]:byte
LOCAL @stPos:POINT
mov eax,wMsg
.
if
eax == WM_CLOSE
invoke EndDialog,hWnd,NULL
.elseif eax == WM_INITDIALOG
push hWnd
pop hWinMain
invoke _InitListView
invoke _GetDir,addr szName
;初始化菜单
invoke CreatePopupMenu
mov hMenu,eax
invoke AppendMenu,hMenu,MF_STRING,IDM_MENU1,offset szHeading1
invoke AppendMenu,hMenu,MF_STRING,IDM_MENU2,offset szHeading2
.elseif eax == WM_NOTIFY
mov edi,lParam
assume edi:ptr NMHDR
mov eax,[edi].hwndFrom
.
if
eax == hWndListView
;右键弹出菜单
.
if
[edi].code == NM_RCLICK
invoke GetCursorPos,addr @stPos
invoke TrackPopupMenu,hMenu,TPM_LEFTALIGN,@stPos.x,@stPos.y,NULL,hWndListView,NULL
;响应左键点击菜单消息,但是无响应,该如何解决?
.elseif [edi].code == NM_CLICK
mov eax,wParam
.
if
ax == IDM_MENU1
invoke MessageBox,hWnd,addr szHeading1,addr szHeading1,MB_OK
.elseif ax == IDM_MENU2
invoke MessageBox,hWnd,addr szHeading2,addr szHeading2,MB_OK
.endif
.endif
.endif
.
else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
_ProcDlgMain endp