Problem mit einem Trackbar
-
Habe einen Lautstärkeregler mit einem TrackBar programmiert, der Wert sollte in einen String eingebunden werden aber das macht komische Sachen: Der Wert geht von 70-79 und springt dann sofort auf 710 und geht dann von 710 - 7100 oder das Selbe mit 50-59, 510 - 5100! Der DrackBar geht von 0-100 was auch funktioniert wenn ich den Wert direkt, ohne StrNCat mit TextOut ausgebe. Nur nach der StrNCat (oder einer anderen eigenen Routine genau gleich) passiert das oben beschriebene. Auffällig noch bei den Deklarationen dass ich einmal db anstatt dd verwenden musste aber der Wert vom TrackBar scheint OK wie bei der direkten Ausgabe ersichtlich. Hier der Codeausschnitt, zuerst Deklarationen:
tbnull db 0 ; mit dd= unveraenderliches TrackBar!! tbhundert dd 100 tbsiebzig dd 70 svol db 255 dup (?),0 ---------------------------------- ; Trackber erstellen: invoke CreateWindowEx,NULL,addr TrackBarClassName, NULL, WS_CHILD or WS_VISIBLE,220,60,70,20,hWin, TrackBarID, hInstance, NULL mov hwndTrack, eax invoke SendMessage, hwndTrack, TBM_SETRANGE, tbnull, tbhundert invoke SendMessage, hwndTrack, TBM_SETPOS, TRUE, tbsiebzig ;-------------------------------- Fensterprozedur: .elseif uMsg==WM_HSCROLL mov setvol[28],0 invoke SendMessage, hwndTrack, TBM_GETPOS, TRUE, NULL invoke wsprintf, addr svol, addr sformat, eax invoke StrNCat, addr setvol, addr svol, 255 invoke GetDC, hWin mov devicecontext, eax invoke TextOut,eax, 10, 40, addr setvol, 50 invoke mciSendString, addr setvol, 0, 0, 0funktionsfähig ist einfach
invoke SendMessage, hwndTrack, TBM_GETPOS, TRUE, NULL invoke wsprintf, addr svol, addr sformat, eax invoke GetDC, hWin mov devicecontext, eax invoke TextOut,eax, 10, 40, addr svol, 50Vielen Dank!
-
bleib weg mit deinem dummen assembler zeug
-
Du bist doch nur neidisch weil du kein ASM kannst
