首页
社区
课程
招聘
[求助]关于ListBox控件
发表于: 2007-5-7 00:32 4833

[求助]关于ListBox控件

2007-5-7 00:32
4833
大家看下图


我因为某种原因,我想把 ListBox.asm这个去掉,剩下ListBox.rc,ListBox.exe,Main.ico,MakeFile,

[..]

改怎么做?如果调用invoke SendDlgItemMessage,hWinMain,IDC_Module,LB_RESETCONTENT,0,0 的话,

会直接把整个去清空.

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 216
活跃值: (2407)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
2
invoke SendDlgItemMessage,hWinMain,IDC_Module,LB_GETCURSEL,0,0 ;获取选中项
invoke SendDlgItemMessage,hWinMain,IDC_Module,LB_DELETESTRING,eax,0 ;删除
2007-5-7 01:11
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
3
多谢这位热心的大哥,现在我又延伸一个问题,

在listbox里选中一个项,比如我选中了ListBox.asm,然后我想通过IDC_Module这个消息列队来执行一个命令,比如 MessageBox.

然后,我又选择另外一个项,比如ListBox.exe,同时又想通过IDC_Module这个消息列队来执行另外的命令,那么该怎么办?

ps:用汇编貌似就纠缠于通用控件,花费时间。这点貌似就是汇编的不足。而用其他语言,可以把思路放在程序算法上。不过,我就喜欢汇编。
2007-5-7 14:11
0
雪    币: 216
活跃值: (2407)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
4
用LB_GETCURSEL消息获取选中的项,再通过LB_GETTEXT获取该项的字符串,然后判断一下就可以了啊.
2007-5-7 14:33
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
5


能否腾出几分钟给个事例代码

看代码比较直观 

3Q
2007-5-7 15:54
0
雪    币: 216
活跃值: (2407)
能力值: ( 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

关键代码就上面这些,完整的看附件吧.
上传的附件:
2007-5-7 16:20
0
雪    币: 796
活跃值: (370)
能力值: ( 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

这段代码貌似是触发鼠标消息
2007-5-7 17:15
0
游客
登录 | 注册 方可回帖
返回
//