|
1鱼币
在看小甲鱼老师的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
|
|