M
Hallo.
Ich habe leider in meinem Buch nur ein Beispiel zur vertikalen Scrollbar stehen, brauch aber eine Horizontale und das klappt nicht so ganz.
Ich will damit meine Integervariable speed zwischen 30 und 120 einstellen lassen können, aber mit meinem Code geht die von 1010 bis 11110 und macht irgendwie ab 2000 einen großen Sprung (total merkwürdig). Diese Zahl will ich dann in meinem Static-Feld hSpeed immer wieder aktualisieren.
Kann jemand in diesem Code den Fehler finden?
//im WM_CREATE
hScroll = CreateWindow (TEXT("scrollbar"),
NULL,
WS_CHILD | WS_VISIBLE | SBS_HORZ,
530, 250, 140, 15,
hwnd,
(HMENU) 6,
((LPCREATESTRUCT)lParam)->hInstance,
NULL);
SetScrollRange(hScroll, SB_CTL, 30, 120, FALSE);
SetScrollPos(hScroll, SB_CTL, speed, FALSE);
hSpeed = CreateWindow (TEXT("static"),
TEXT("30"),
WS_CHILD | WS_VISIBLE | SS_CENTER,
600, 222, 50, 25,
hwnd,
(HMENU) 7,
((LPCREATESTRUCT)lParam)->hInstance,
NULL);
// und die Scrollbaraktionen
case WM_HSCROLL:
switch(LOWORD(wParam))
{
case SB_PAGERIGHT:
if(speed>100) speed=100;
speed+=20;
break;
case SB_LINERIGHT:
if(speed==120) break;
speed+=1;
break;
case SB_PAGELEFT:
if(speed<50) speed=50;
speed-=20;
break;
case SB_LINELEFT:
if(speed==30) break;
speed-=1;
break;
case SB_THUMBPOSITION:
case SB_THUMBTRACK:
speed=HIWORD(wParam);
break;
default:
break;
};
SetScrollPos (hScroll, SB_CTL, speed, TRUE);
itoa(speed, szBuffer, 3);
SetWindowText(hSpeed, szBuffer);
return 0;
Oder kann es sein, dass das Schreiben in das Staticfeld nur einen Fehler beinhaltet?
Wäre echt nett wenn mir jemand weiterhelfen könnte.
Gruß
Max