006
23.03.2005, 17:08 Uhr
A-l-e-x
|
*lol* es geht! Naja, jedenfalls in C++. Ich wollte das in Assembler nachprogen... Eigentlich sollte es gleich sein...
Code: |
; mache es in MASM .data Scroll SCROLLINFO <sizeof(SCROLLINFO),SIF_ALL,0,10,1,5,5>
.data? pos dd ?
.code ... mov eax,uMsg .IF eax==WM_INITDIALOG invoke GetDlgItem,hWnd,IDC_SCROLL_TYP invoke SetScrollInfo,eax,SB_CTL,addr Scroll,TRUE
.ELSEIF eax==WM_VSCROLL mov eax,sizeof(SCROLLINFO) mov Scroll.cbSize,eax mov Scroll.fMask,SIF_ALL invoke GetDlgItem,hWnd,IDC_SCROLL_TYP invoke GetScrollInfo,eax,SB_CTL,addr Scroll mov eax,Scroll.nPos mov pos,eax
mov eax,wParam .IF eax==SB_THUMBTRACK mov eax,Scroll.nTrackPos mov Scroll.nPos,eax .ELSEIF eax==SB_LINEUP sub Scroll.nPos,1 .ELSEIF eax==SB_LINEDOWN add Scroll.nPos,1 .ELSEIF eax==SB_PAGEUP mov eax,Scroll.nPage sub Scroll.nPos,eax .ELSEIF eax==SB_PAGEDOWN mov eax,Scroll.nPage add Scroll.nPos,eax .ENDIF
mov eax,pos .IF eax!=Scroll.nPos mov Scroll.fMask,SIF_POS invoke GetDlgItem,hWnd,IDC_SCROLL_TYP invoke SetScrollInfo,eax,SB_CTL,addr Scroll,TRUE .ENDIF .ENDIF
|
Jedenfalls hab ich da Probleme bei verschieben des Dinges in der Mitte: Er reagiert nur wenn man es an die Stelle 0 patziert.
PS: Hab nichts dagegen, wenn man es jetzt ins Assembler-Forum verschiebt, denn die meisten hier würden sich überfordert fühlen.
mfg A-l-e-x Dieser Post wurde am 23.03.2005 um 17:09 Uhr von A-l-e-x editiert. |