Und noch ein Problem: Scrollbar in Edit-Feld
-
Ich brauche nochmal gerade eure Hilfe!
Ich habe eine Editfeld, indem ich vertikales Scrollen aktiviert habe. Funktioniert auch alles ganz toll. Nur die Scrollleiste rechts wird ja immer angezeigt, auch wenn es eigentlich nichts zum scrollen gibt. Dann ist sie zwar deaktiviert, aber ich würde den Scrollbalken dann gerne ganz ausblenden.
Wie kann ich abfragen, ob der Scrollbalken aktiviert oder deaktiviert ist?
Ausblenden kann ich sie dann ja mit EnableScrollBarCtrl(), das habe ichs chn ausprobiert. Nur den Status bekomm ich nicht raus. Ich habs so versucht:// Scrollbar anzeigen / verstecken CScrollBar *scrollbar = m_edit_text.GetScrollBarCtrl(SB_VERT); if(scrollbar->IsWindowEnabled()) { AfxMessageBox("Enabled!"); } else AfxMessageBox("Disabled");Aber ich bekomme immer einen Null-Pointer zurück bei GetScrollBarCtrl
, egal an welcher Stelle ich die Funktion aufrufe.
Die Abfrage soll übrigens direkt beim Öffnen des Dialogs stattfinden, da das Editfeld nur zur Ausgabe von Text dient, der schreibgeschützt ist und sich somit die Textlänge nicht mehr ändert!Vielen Dank schonmal fürs helfen *hoffentlich*

-
Diese Scrollbars haben keine eignen Handles. Du kannst sie so nicht abfragen.
Verschwinden lassen kannst Du den Rollbalken nur in dem Du explizit SetScrollInfo aufrufst. Allerdings wird das Edit Control diesen Scrollbar wieder einblenden bei bestimmten Operationen.Du kannst auch den Stil des Edit Control (WS_VSCROLL, ES_AUTOVSCROLL) entfernen und den Rollbalen so verstecken. Nur dann musst Du selber darauf achten wann Du ihn wieder einblendest. Ich finde diese Rumflackerei allerdings eher lästig als gut bei einem Edit Control.
-
Vielen Dank für deine Antwort. Das Problem mit dem lästigen einblenden/ausblenden habe ich ja nicht, da ich nur einmal am Anfang die Scrollbar ausblenden möchte (oder eben auch nicht), da sich das Feld danach nicht mehr ändert.
-
Dann verstehe ich gar nichts mehr...
Setze doch einfach die entsprechenden Stile ES_AUTOxSCROLL WS_xSCROLL, dann werden die Scrollbars auch angezeigt.BTZ, Nur ES_MULTILINE Contrls haben solche Rollbalken.