Scrollen und Neuzeichnen
-
Hi!
Hab nen Problem: Wenn ich auf die Scrollleiste in meinem Fenster klciek, so verändert sich zwar die Position des Thumbs, aber ich sehe nicht wie es scrollt. Erst, wenn ich ein anderes Programm in den Vordergrund hole und das Fenster abdekce, sehe ich das gescrollte. Aber ich sag dem Fenster nach dem EMpfang der Scrollnachricht : Neu zeichnen:
case WM_VSCROLL: switch((int)LOWORD(wParam)) { case SB_LINEDOWN: SetScrollPos(hWindow, SB_VERT, GetScrollPos(hWindow, SB_VERT) + 20, TRUE); SendMessage(hWindow, WM_PAINT, 0, 0); break; } case WM_PAINT: // Die Ausgabe in das Fenster von CHandy machen lassen: g_mapHandy[hWindow]->Ausgabe();
Ausgabe Funktioniert, da bin ich mir sicher, denn nach dem ich ein anderses Programm in den Vordergrund geholt habe, geht es ja...
-
Du solltest WM_PAINT nicht direkt senden! Nimm stattdessen InvalidateRect und evtl. anschließend noch UpdateWindow