2011-01-17 3 views

Antwort

2

Die WM_VSCROLL Nachricht wird an ein Fenster gesendet, wenn ein Scroll-Ereignis im Standard vertikale Bildlaufleiste des Fensters auftritt. Diese Nachricht wird auch an den Besitzer eines vertikalen Bildlaufleisten-Steuerelements gesendet, wenn ein Bildlaufereignis im Steuerelement auftritt.

http://msdn.microsoft.com/en-us/library/bb787577%28v=vs.85%29.aspx

Sie können zunächst GetScrollRange() (http://msdn.microsoft.com/en-us/library/bb787587%28v=vs.85%29.aspx), berechnen, wie viele Zeilen sind, Berechnen Sie dann den Prozentsatz. Danach WindowProc() mit VM_SCROLL oder einer viel einfacheren Lösung verwenden, um die SetScrollPos() Funktion http://msdn.microsoft.com/en-us/library/bb787597%28v=vs.85%29.aspx

Sie können alle Scrollfunktionen hier http://msdn.microsoft.com/en-us/library/ff486021%28v=VS.85%29.aspx

Hope this half finden.

+0

Danke, ist Jede Idee, warum vertikale Scroll bewegt, wenn der Text sogar die Kontrolle mehrzeiliges Eingabe hinzugefügt in, wenn die AUTOROLL Flag ist deaktiviert? – user32324

+0

Der Stil ES_AUTOHSCROLL weist das Bearbeitungssteuerelement an, den Text bei Bedarf horizontal zu scrollen, wenn der Benutzer Text eingibt. Wenn dieser Stil nicht angegeben wird, kann das Bearbeitungssteuerelement nicht horizontal scrollen. Bei einzeiligen Bearbeitungssteuerelementen ohne ES_AUTOHSCROLL werden nur die Zeichen akzeptiert, die den sichtbaren Bereich des Steuerelements ausfüllen. Bei mehrzeiligen Bearbeitungssteuerelementen ohne ES_AUTOHSCROLL wird der Text in die nächste Zeile umbrochen, wenn der Benutzer mehr Text eingibt als in einer einzelnen Zeile angezeigt werden kann. – soulseekah

+0

... Wenn ES_AUTOHSCROLL für ein mehrzeiliges Bearbeitungssteuerelement angegeben ist, scrollt das Steuerelement horizontal der Benutzer gibt mehr Text ein, als in einer einzelnen Zeile angezeigt werden kann; Der Text wird nicht umgebrochen. ~ Http://msdn.microsoft.com/en-us/library/bb775456%28v=VS.85%29.aspx#edit_scroll_styles – soulseekah