能力值:
( LV10,RANK:170 )
|
-
-
2 楼
invoke SendDlgItemMessage,hWinMain,IDC_Module,LB_GETCURSEL,0,0 ;获取选中项
invoke SendDlgItemMessage,hWinMain,IDC_Module,LB_DELETESTRING,eax,0 ;删除
|
能力值:
( LV9,RANK:380 )
|
-
-
3 楼
多谢这位热心的大哥,现在我又延伸一个问题,
在listbox里选中一个项,比如我选中了ListBox.asm,然后我想通过IDC_Module这个消息列队来执行一个命令,比如 MessageBox.
然后,我又选择另外一个项,比如ListBox.exe,同时又想通过IDC_Module这个消息列队来执行另外的命令,那么该怎么办?
ps:用汇编貌似就纠缠于通用控件,花费时间。这点貌似就是汇编的不足。而用其他语言,可以把思路放在程序算法上。不过,我就喜欢汇编。
|
能力值:
( LV10,RANK:170 )
|
-
-
4 楼
用LB_GETCURSEL消息获取选中的项,再通过LB_GETTEXT获取该项的字符串,然后判断一下就可以了啊.
|
能力值:
( LV9,RANK:380 )
|
-
-
5 楼
能否腾出几分钟给个事例代码
看代码比较直观
3Q
|
能力值:
( LV10,RANK:170 )
|
-
-
6 楼
.if eax == WM_COMMAND
mov eax,wParam
.if ax == IDC_btExit
invoke EndDialog,hWnd,NULL
.elseif ax == IDC_LST1
shr eax,16
.if ax == LBN_SELCHANGE
invoke SendMessage,lParam,LB_GETCURSEL,0,0
lea ecx,@szBuffer
invoke SendMessage,lParam,LB_GETTEXT,eax,ecx
invoke lstrcmp,addr @szBuffer,ctxt("list.exe")
.if !eax
invoke MessageBox,hWnd,ctxt("你选中了List.exe"),0,0
.else
invoke MessageBox,hWnd,ctxt("你没有选中List.exe"),0,0
.endif
;这里可以添加更多的比较代码
.endif
.endif
关键代码就上面这些,完整的看附件吧.
|
能力值:
( LV9,RANK:380 )
|
-
-
7 楼
这样子说吧,你的代码里有list.exe,list.asm,list.rc这三个文件,我选中一个,然后点确定就可以删除选中的,比如我选择list.exe,那么点确定(IDC_DelFile),list.exe就被删除了。点移动(IDC_MoveFile),就把list.exe移动到我指定的位置。
同样,选择list.asm,也可以和上面操作一样;选择list.rc,也能做同样操作。
.if ax == LBN_SELCHANGE
invoke SendMessage,lParam,LB_GETCURSEL,0,0
lea ecx,@szBuffer
invoke SendMessage,lParam,LB_GETTEXT,eax,ecx
这段代码貌似是触发鼠标消息
|
|
|