Problem beim Einbinden des IE in ein C++ - Programm
-
Habe versucht wie mittels C++- Doku:
http://www.mut.de/media/buecher/VCPLUS6/data/kap21.htm
versucht einen Webbrowser in eine MFC-Anwendung einzubinden.Listing 21.1: Die Funktion OnNewAddress der Klasse CMainFrame
void CMainFrame::OnNewAddress() { CString sAddress; // Den neuen URL holen m_wndDlgBar.GetDlgItem(IDC_EADDRESS)->GetWindowText(sAddress); // Zum neuen URL navigieren ((CWebBrowseView*)GetActiveView())->Navigate(sAddress); }
Leider funktioniert das Listing nicht ganz richtig und bringt mir beim Kompilieren Fehlermeldungen:
..\WebBrowse\MainFrm.cpp(128) : error C2065: 'CWebBrowseView' : nichtdeklarierter Bezeichner ..\WebBrowse\MainFrm.cpp(128) : error C2059: Syntaxfehler : ')'
Dadurch, daß ich noch nicht allzu viel Erfahrungen mit C++ gesammelt habe, weiß ich nun nicht genau, wodurch der Fehler hervorgerufen wird.
Wer kann helfen ?
Quelldateien (als ZIP): www.schenser-online.de/cpp/index.html
-
In der MSDN gibt es kein CWebBrowseView, scheint also eine Eigenkreation zu sein. Dann (sonst auch) musst du die Headerdatei einbinden, in der du die Klasse deklariert hast. So sollte auch der andere Fehler verschwinden.
Ich hoffe es hilft.
-
Schau einfach mal auf die Seite:
[url]http://www.mut.de/media/buecher/VCPLUS6/data/kap21.htm
[/url]
Genau wie dort beschrieben hab ich die MFC-Anwendung erstellt.
- Neues Projekt
- MFC-Anwendung
- Projektname vergeben
- Einzelnes Dokument (SDI)
- in Schritt 4 statt "Normal" die Option "Internet Explorer-Infoleisten" bei "Wie soll das Menü aussehen?" gewählt
- als Basisklasse am Ende CHtmlView eingestelltDanach wird durch den Anwendungsassistent automatisch diese Klasse angelegt
C[Projektname]View
Also im Prinzip der View (Ansicht) des Programms in Form eines WebBrowser- Fensters.
In anderen Programmen hat man die ja auch: Dokumentenfenster zum Bearbeiten eines Dokumentes, Druckansicht etc.
Wenn das Projekt beispielweise "Test" heißen würde, dann würde der MFC- Assistent automatisch die Klasse "CTestView" anlegen.
-
Das Problem hätte Dir aber schon früher auffallen müssen, bei dem Malproggi (Tag10) zum Beispiel, aber egal, ich hab das Problem so behoben:
include in der MainFrm.cpp die Datei WebBrowseView.h und wo Du schon dabei bist, die WebBrowseDoc.h brauchst Du wahrscheinlich später auch noch?!
so hats bei mir geklappt...
-
Ganz genauso hab ich das dann auch gemacht, danke trotzdem für den Tip.
Aber mal ehrlich, daß Microsoft das in seinen MFC- Assistenten nicht gleich eingebaut hat mit den includes ist doch irgendwie sinnlos. Was soll man denn ohne Includen dieser Headerfiles schon groß mit dem Programm anfangen können. Früher oder später müssen die sowieso mit rein.
-
Aber mal ehrlich, daß Microsoft das in seinen MFC- Assistenten nicht gleich eingebaut hat mit den includes ist doch irgendwie sinnlos. Was soll man denn ohne Includen dieser Headerfiles schon groß mit dem Programm anfangen können. Früher oder später müssen die sowieso mit rein.
Genau, das wär dir bei Linux nicht passiert!!!!!!
BOAH, ICH HASSE LINUX...
BTW: Wenn ich ein neues Projekt erstelle hab ich nie solche Probleme... Ausserdem müsstest du ja an Tag 21 so weit sein, dass du den Fehler selber findest, oder??? Ansonsten ist das Tut scheiße oder du hast dir nur die schönen Bildchen angeguckt...[ Dieser Beitrag wurde am 02.12.2002 um 15:56 Uhr von MaSTaH editiert. ]
-
Tja, hab gleich am Tag 21 angefangen. Dachte meine C++- Kenntnisse von einem Semester wären ausreichend gewesen. Aber wenn man nur noch ein bissel die MFC- Assistenten- Sachen anpasst, kann man natürlich nicht so sehr in die Materie einsteigen.
Das Tut ist im Grunde genommen für den Anfang gar nicht schlecht, aber genau solche Ausnahmen müßte man halt da auch erfassen und nicht als selbstverständlich hinnehmen.