scrollen im Dialog
-
Hallo,
wie kann man in einem Dialog scrollen? der Dialog besitzt unter Eigenschaften schon Scrollen leider geht es nicht.
Bitte Helft mir mit BSP:
-
Schonmal bei den Eigenschaften des Dialoges unter Format mit Vertik./Horiz. Bildlauf probiert? Zumindest erreichst Du damit schonmal die Laufleisten rechts bzw. unten...
Gruß,
Holger
-
ja das habe ich schon ausprobiert! Aber ich benötige den Quelltext um dieses umzusetzen.
cu bumbumb
-
Hallo, ich würde auch gerne im Dialog scrollen, deshalb wärme ich das Thema nochmal etwas auf. Ich habe im Dialog die horizontale Bildlaufleiste aktiviert. Jetzt frage ich mich und euch wie ich darauf zugreifen kann?
-
was genau willst du denn machen?
-
Ich möchte gerne Text in einem Dialog scrollen. Mit ScrollWindow() könnte ich den Text scrollen lassen, aber ich weiss z.B nicht wie den Thumb des Scrollbalkens setzen kann oder die aktuelle Position des Thumbs abfragen kann.
-
puh das ist glaub ich etwas aufwendiger, müsst ich nachschlagen
aus der erinerung heraus gibts versch. Messages die deine Scrollbar sendet wenn du sie benutzt, also ob pfeil hoch, pfeil runter, auf den Scrollbalken(Bildauf/ab) gedrückt wurde oder der slider mit der maus gezogen wurde.
Dann musst du entsprechend berechnen/angeben wie die Schritte sein sollen und beim zeichnen ggf noch aufpassen das du die dargestellten Koordinaten mit den Tatsächlichen abgleichst:
hier etwas blöd darzustellen aber stell dir das so vor:
C = sichtbarer Bereich
D = gesamter Zeichenbereich
CCCCDDD
CCCCDDD
CCCCDDD
DDDDDDD
DDDDDDD
dann scrollst du und das ganze sieht so aus:
DCCCCD
DCCCCD
DCCCCD
DDDDDD
DDDDDD
Wenn du jetzt oben links bei C zeichnest heisst es nicht das es wenn du wieder scrollst auch immernoch da ist, wenn du die Koordinaten nicht umrechnest wärs dann eher so:
X = gezeichnetvor zurückscrollen nach zurückscrollen DXCCCD XCCCDD DCCCCD CCCCDD DCCCCD CCCCDD DDDDDD DDDDDD DDDDDD DDDDDD
So, nachdem ich dich jetzt ordentlich verwirrt hab schlag ich besser mal nach wie man das richtig macht
-
Danke für deine Mühe
Das eigentliche Scrollen sollte kein Problem sein. Das wird nicht weiter von einer eingefügten Steuerelement-Laufleiste abweichen. Wird auf die Dialog-Laufleiste geklickt wird eine WM_VSCROLL-Message gesendet, die dann weiterverarbeitet wird, je nachdem ob Pfeil nach oben, Pfeil nach unten usw angeklickt wurde.
Nur wie kann ich den Schieberegler setzen? Bei einer Element-Bildlaufleiste hab ich mir einen Zeiger geholt und habs dann mit SetScrollPos() gemacht. Das klappt so aber nicht bei einer Dialog-Laufleiste
-
Das klappt dann genauso, aber du brauchst keinen Zeiger. Um einen Wertebereich festzulegen könntest du es so machen:
SetScrollRange(SB_VERT, 0, 300, TRUE);
Wie du richtig geschrieben hast sendet deine Bildlaufleiste eine WM_VSCROLL-Nachricht, sobald diese angeklickt wurde. Du kannst in der Funktion dafür den Schieberegler so setzen:
SetScrollPos(SB_VERT, 50, TRUE);
-
jo genau, find auch leider das buch grad ned da wurd nämlich genau das Problem behandelt.
Hab das aber nur schnell abgepinselt als ich das buch durchgearbeitet habe, daher ist nur die Therie eingiermaßen hängengeblieben
EDIT: Notfalls kannst du ja auch ein EditFeld auf die Größe des Clients setzen und dort dei Scrollbalken usw aktivieren, dann noch u.u. schreibgeschützt dann sieht das genauso aus
-
@Panschev
Genau das habe ich gesucht und nicht gefunden! Dabei war es so einfach, aber manchmal kommt man einfach nicht drauf.@Taelan
Deine Idee mit dem Eingabefeld ist natürlich auch eine Überlegung wert. Ich frage mich warum ich es immer so kompliziert versuche, wenn es auch einfach geht.Ich versuche jetzt mal einen Code zu basteln, mit dem ich über die Scrolleiste scrollen kann. Wenn ich es nicht hinbekomme nehme ich das Eingabefeld. Danke euch 2