首页
社区
课程
招聘
[求助]汇编如何实现在循环的同时显示及窗口进度?
发表于: 2007-11-13 09:28 4881

[求助]汇编如何实现在循环的同时显示及窗口进度?

2007-11-13 09:28
4881
下面的代码想实现程序一开始运行就显示一个窗口,窗口中有一进度条显示恢复的进度,HUIFU子程序里有一循环,但程序运行的结果是并没有显示窗口和进度条,只是等HUIFU的循环结束后才出现窗口和100%的进度。但用方法(2)点击HUIFU按键(ID 1003),就能正常显示窗口和进度条的进度,我要如何做才能实现程序自动运行并在循环的同时能显示窗口和进度条?
(1)
.if eax==WM_INITDIALOG
    invoke GetDlgItem,hWin,1001
    mov hpb,eax
    mov eax,1969              
    mov CurrentStep,eax
    shl eax,16                  
    invoke SendMessage,hpb,PBM_SETRANGE,0,eax
    invoke SendMessage,hpb,PBM_SETSTEP,1,0
    invoke huifu
(2)
elseif uMsg==WM_COMMAND
        .if  wParam == 1003
                 invoke huifu
...

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 230
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
因为  WM_INITDIALOG 消息来的时候,窗口还不能显示出来。

可以试试
.if eax==WM_PAINT
        ;第1次 PAINT ,PaintFirst 定义到 .data?里
        .if PaintFirst==0
                mov PaintFirst,1
                invoke GetDlgItem,hWin,1001
                mov hpb,eax
                mov eax,1969              
                mov CurrentStep,eax
                shl eax,16                  
                invoke SendMessage,hpb,PBM_SETRANGE,0,eax
                invoke SendMessage,hpb,PBM_SETSTEP,1,0
                invoke huifu
        .endif
2007-11-13 14:06
0
雪    币: 230
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不过这样会影响窗口重画,最好建个 Thread

.if eax==WM_PAINT
  .if PaintFirst==0
          mov PaintFirst,1
          invoke GetDlgItem,hWin,1001
          mov hpb,eax
          mov eax,1969              
          mov CurrentStep,eax
          shl eax,16                  
          invoke SendMessage,hpb,PBM_SETRANGE,0,eax
          invoke SendMessage,hpb,PBM_SETSTEP,1,0
          invoke CreateThread,0,0,addr huifu,0,0,addr ThreadID
          invoke CloseHandle , eax
  .endif
2007-11-13 14:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
非常感谢xiaolz的回复!
这个问题困绕我很久了,先试试,若有疑问再请教你。
2007-11-14 00:40
0
游客
登录 | 注册 方可回帖
返回