首页
社区
课程
招聘
[旧帖] 汇编中如何响应Listview中点击右键菜单的消息? 0.00雪花
发表于: 2010-1-30 00:17 3908

[旧帖] 汇编中如何响应Listview中点击右键菜单的消息? 0.00雪花

2010-1-30 00:17
3908
如下面,我在启动时候初始化了一个右键菜单,然后在列表框中点击右键就弹出右键快捷菜单。但是在我想点击菜单的时候,该怎么做?我知道在主窗体中用WM_COMMAND中处理代码,但是在列表框中怎么判断用户点击了右键菜单的哪个项?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
_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


下面是全部代码,可以下载调试
Test.rar

[注意]看雪招聘,专注安全领域的专业人才平台!

上传的附件:
收藏
免费
支持
分享
最新回复 (1)
雪    币: 145
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
已通过子类化的方法解决,然后处理Listview自己的WM_COMMAND消息
2010-2-1 23:55
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册