static-Window scrollen
-
Hallihallo,
ich komm gleich zur Sache:
Ich habe ein static-Window (CHILD) und scrolle dieses mit ScrollWindow(), jedoch gibt es beim Scrollen ekelhafte Rückstände des Textes, der sich im Fenster befindet und UpdateWindow() hilft absolut garnicht.
Mit InvalidateRect() wird das Fenster zwar neugezeichnet, aber eben komplett neu, sodass die Scroll-Position verloren geht.Was kann ich tun?
Danke, schonmal vorab.
lg Max
-
Ein Static Control ist für so etwas nicht ausgelegt.
Verwende ein Edit Control mit ES_READONLY!
-
Danke für die prompte Antwort, leider passiert beim Editfeld genau das Selbe...
lg Max
-
MaDsTyLe schrieb:
Danke für die prompte Antwort, leider passiert beim Editfeld genau das Selbe...
lg Max
Da rollst Du aber mit EM_SETSEL! Und nicht mit ScrollWindow! Das kann das Fenster nicht verstehen.
-
Vielen Dank, ich habe aber bereits EM_SCROLL gefunden, das tuts perfekt.
lg Max
Post Scriptum:
Wie ich feststellen muss hilft mir das ganze aber wenig...
Vielleicht stell ich mein Problem mal genauer dar:
Ich will ein Fenster erzeugen in welchem viele Buttons untereinander liegen und dieses Fenster scrollen.
Wie mach ich das am besten?
-
mit einem scrollbar-ctrl

-
Dann würde ich Dir empfehlen demnächst eine genauere FRage zu stellen.
Weder ein Static noch ein Edit Control eigenen sich zur Aufnahme von weiteren Control. Dazu solltest Du ein Subdialog verwenden als WS_CHILD und diesen entsprechend anpassen.
Alle anderen Controls gehen davon aus, dass Ihnen die Client Area voll gehört. Das ist aber eben nicht so, wenn Du weitere Control einbaust. Zudem: Wie sollen denn die Child COntrols wissen wo sie liegen, wenn das Elternfenster nicht Seine Fenster offsets anpasst?
-
Subdialog = Untergeordneter Dialog?
Wie bekomm ich darauf ein Handle?
Gibts da ein Tutorial?
Vielen Dank fü die Hilfe schonmal!
lg Max
-
Diese Projekt auf die Windows API ist nicht sonderlich schwer:
http://www.codeproject.com/KB/dialog/scrollablechilddialog.aspx
-
Danke, die Beispiel-EXE sieht echt gut aus, aber ... wie übersetz ich das in WinAPI?
Ich hab von MFC noch absolut keinen Schimmer...lg Max
EDIT:
Hehe, der Max hat seinen Verstand genutzt und das Problem auf eine viel schönere Art gelöst. Einfach eine neue Klasse anlegen, WS_VSCROLL rein und den mit SCROLLINFO + SB_VERT bearbeiten und das Fenster letztendlich mit ScrollWindow() scrollen, denn dann wirkt das UpdateWindow()