CppWebbrowser: Automatisch scrollen??
-
Hallo Forum,
ich will mit dem cppwebbrowser eine datei laden (bereits implementiert) und diese dann durchblättern, und zwar nicht durch langsames scrollen, sondern durch richtiges blättern. Ich hab schon CppWebBrowser1->ScrollBy(0, 50); versucht, verschiebt sich nur der CppWebBrowser1. In dem Printpreview weiß ich nicht, wie ich blättere...
Also hätte da wer ne Idee, nen Vorschlag, nen Link oder Code?? Wär sehr dankbar...
MFG throni3
Edit: Überschrift präzisiert
-
hi,
SendMessage(CppWebBrowser1->Handle,WM_VSCROLL, SB_LINEDOWN,0); SendMessage(CppWebBrowser1->Handle,WM_VSCROLL, SB_LINEDOWN,0);
Zum Blättern vielleicht:
SB_PAGEDOWN
SB_PAGEUP
bezutzen
siehe auch:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/scrollbars/scrollbarreference/scrollbarmessages/wm_vscroll.aspPOINT temp; SendMessage(CppWebBrowser1->Handle,EM_GETSCROLLPOS,0,(LPARAM)&temp); // aktuelle positon temp.y+=100; // 100 Pixel nach unten SendMessage(CppWebBrowser1->Handle,EM_SETSCROLLPOS,0,(LPARAM)& temp); // neue position setzen SendMessage(CppWebBrowser1->Handle, WM_SETREDRAW, (WPARAM)TRUE, 0); // neu zeichnen
PS: DIe COdebeispiele sind ungetestet, da ich zur Zeit kein BCB auf meinem Rechner habe.
-
danke für die tips, habs gleich mal versucht... hab auch noch n bissel gesucht und bin zu setscrollinfo gekomm. allerdings hat kein scrollversuch per button3 gefunzt...
void __fastcall TForm1::Button3Click(TObject *Sender) { //CppWebBrowser1->ScrollBy(0, 50); //verrückt den browswer //SetScrollPos(CppWebBrowser1->Handle, SB_VERT, SB_LINEDOWN, true); //SendMessage(CppWebBrowser1->Handle,WM_VSCROLL, SB_LINEDOWN,0); //dein erster code SCROLLINFO MySInfo;//versuch per setscrollinfo MySInfo.cbSize = sizeof(SCROLLINFO); GetScrollInfo(CppWebBrowser1->Handle, SB_VERT, &MySInfo); MySInfo.nPage = 4; MySInfo.fMask = SIF_PAGE; SetScrollInfo(CppWebBrowser1->Handle, SB_VERT, &MySInfo, true); //SendMessage(CppWebBrowser1->Handle,SBM_SETPOS, SB_LINEDOWN,true); //SendMessage(CppWebBrowser1->Handle, WM_SETREDRAW, (WPARAM)TRUE, 0); // neu zeichnen //CppWebBrowser1->Update(); /* POINT temp; //dein zweiter code SendMessage(CppWebBrowser1->Handle,EM_GETSCROLLPOS,0,(LPARAM)&temp); // aktuelle positon temp.y+=100; // 100 Pixel nach unten SendMessage(CppWebBrowser1->Handle,EM_SETSCROLLPOS,0,(LPARAM)& temp); // neue position setzen SendMessage(CppWebBrowser1->Handle, WM_SETREDRAW, (WPARAM)TRUE, 0); // neu zeichnen */ }
ich hab bei jedem versuch den scrollbalken bisselrunter geschoben per maus, um zu sehen, ob er nach oben geht, wenn er schon nich nach unten geht...
hättest du noch nen Tipp?? aber schon mal danke für die hilfe
MFG throni3
-
Eigentlich ist es ein bisschen seltsam auf einen 6 Jahre alten Eintrag zu antworten, aber es wird immer auf diesen Eintrag verwiesen, obwohl er keine Lösung bietet.
Auch wenn ihr den folgenden Quellcode ein bisschen seltsam finden werdet, er funkioniert.
#include "Mshtml.h" void TForm_Help::ScrollVertical(int pScrollWidth) { IDispatch* Disp = CppWebBrowser_HelpFile->Document; IHTMLDocument2* Document = NULL; Disp->QueryInterface( IID_IHTMLDocument2, (void**)&Document ); IHTMLWindow2 *Window = NULL; Document->get_parentWindow( &Window ); Window->scrollBy( 0, pScrollWidth); Disp->Release(); }