能力值:
( LV13,RANK:1370 )
|
-
-
2 楼
1、换种思路,用双击实现:
.IF uMsg == WM_COMMAND
mov eax, wParam
movzx edx, ax ; edx 就是ListBox的ID: IDListBox
shr eax, 16
.IF edx == IDListBox && eax == LBN_DBLCLK
;做些想做的事情
.ENDIF
.ENDIF
2、鼠标右击:
.if uMsg == WM_RBUTTONDOWN
invoke GetClientRect,hList,addr Rct
mov eax,lParam
and eax,0FFFFh ;鼠标 X 位置
mov edx,lParam,
shr edx,16 ; 鼠标 Y 位置
.if eax >= Rct.left && eax <= Rct.right && edx >= Rct.top && edx <= Rct.bottom
invoke DestroyWindow,hList
.endif
3、真正的右键菜单
.if uMsg == WM_INITDIALOG
invoke LoadMenu, hInstance, offset MenuName ;主菜单
mov hMenuh , eax
invoke GetSubMenu, hMenuh,0 ;子菜单
mov hSubMenu, eax
...
.elseif uMsg==WM_CONTEXTMENU
mov eax, lParam ;显示弹出菜单
and eax, 0ffffh
mov ebx, lParam
shr ebx, 16
;invoke TrackPopupMenu, hMenuh, TPM_LEFTALIGN, eax, ebx, 0, hWnd, 0
invoke TrackPopupMenu, hSubMenu, TPM_LEFTALIGN, eax, ebx, 0, hWnd, 0
相关资料:列表框控件
1,创建方法:子窗口CREATEWINDOW,对话框.LISTBOX ID
2,列表样式:LBS_NOTIFY 父窗口发送消息
LBS_EXTENDEDSEL 扩展
LBS_SORT 字母顺序
LBS_NOREDRAW 改变时不重画
LBS_NULTIPLESEL 多选
LBS_STANDARD 标准样式
3,消息传递:发送WM_COMMAND 字参数(WPARAM) 高字节:通知码 低字节;控件标识
4,通知码: LBN_SELCHAANG 发生改变
LBN_DBLCLK 双击
LBN_SELCANCLE 选择取消
LBN_SETFOCUS 收到输入焦点
LBN_KILLFOCUS 失去输入焦点
应用程序对列表框通过SENDMESSAGE或SENDLGITEMMESSAGE发送以下消息.
LB_ADDFILE 加入指定文件
LB_GETTEXT 获取指定文本
LB_ADDSTRING 加入列表项
LB_GETTEXTLEN 获取指定项长高
LB_DELETESTRING 删除列表项
LB_GETTOPINDEX 获取第一项的索引值
LB_DIR 列出指定文件
LB_INSERTSTRING 加入一项
LB_FINDSTRING 查找指定项
LB_RESETCONTENT 清空
LB_GETCOUNT 项数
LB_SETSEL 设置状态
LB_GETCURSEL 选种的索引值
LB_SETCURSEL 设置选中项
LB_GETSEL 获取选中状态
LB_SETTOPINDEX 设置第一项索引值
LB_GETSELCOUNT 获取项数
|
能力值:
( LV13,RANK:1370 )
|
-
-
3 楼
但是以上的内容好象都没达到效果,因为可以随便在窗体某处右击,没有控制在LISTBOX内,以下代码应该可以实现:
.elseif uMsg==WM_CONTEXTMENU
...
invoke GetDlgItem,hWnd,IDC_LST
mov hList,eax
invoke SetWindowLong,hList,GWL_WNDPROC,ListBoxProc
mov lpListBox, eax
ListBoxProc proc hCtl :DWORD,uMsg:DWORD, wParam:DWORD, lParam :DWORD
.if uMsg == WM_RBUTTONDOWN ;WM_CONTEXTMENU
mov eax, hList
invoke MessageBox,hDlg,CTEXT("test"),0,0 ;仅仅做个测试,自己修改
.endif
invoke CallWindowProc,lpLstBox,hCtl,uMsg,wParam,lParam
ret
ListBoxProc endp
|