shadowxh 发表于 2012-7-7 15:50:16

求大侠帮助,关于win32汇编滚动条的问题

在看小甲鱼老师的win32汇编视频有关滚动条的使用部分时,我将位置变量设为局部变量@dwPos,结果实际操作时发现无论如何移动,滚动条始终在100位置,设为全局变量就没问题,求详细解释。
以下是部分源码:
.elseif eax==WM_HSCROLL
      mov eax,wParam
      .if ax==SB_LINELEFT
            dec @dwPos
      .elseif ax==SB_LINERIGHT
            inc @dwPos
      .elseif ax==SB_PAGELEFT
            sub @dwPos,10
      .elseif ax==SB_PAGERIGHT
            add @dwPos,10
      .elseif ax==SB_THUMBPOSITION||ax==SB_THUMBTRACK
            mov eax,wParam
            shr eax,16
            mov @dwPos,eax
      .endif
      cmp @dwPos,0
      jge @F
      mov @dwPos,0
      @@:
      cmp @dwPos,100
      jle @F
      mov @dwPos,100
      @@:
      invoke SendDlgItemMessage,hWnd,IDC_SCROLLBAR1,SBM_SETPOS,@dwPos,TRUE
      invoke SetDlgItemInt,hWnd,IDC_STATIC,@dwPos,TRUE
    .elseif eax==WM_INITDIALOG
            invoke SendDlgItemMessage,hWnd,IDC_SCROLLBAR1,SBM_SETRANGE,0,100

小甲鱼 发表于 2012-7-13 01:29:26

不能是局部变量,全局变量才通知得到。

如果是C-like语言可以 static int dwPos;

阔怀 发表于 2015-8-21 09:49:17

厉害
页: [1]
查看完整版本: 求大侠帮助,关于win32汇编滚动条的问题