求大侠帮助,关于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
不能是局部变量,全局变量才通知得到。
如果是C-like语言可以 static int dwPos; 厉害
页:
[1]