Visual C++ ist ein leistungsstarkes und komplexes Tool zum Erstellen von 32-Bit-Anwendungen für Windows 95 und Windows NT. Diese Anwendungen sind sehr viel umfangreicher und komplexer als ihre 16-Bit Vorgänger für Windows 3.x oder ältere Programme, die keine grafische Benutzeroberfläche hatten. Obwohl Größe und Komplexität dieser Programme zugenommen hat, hat die Arbeit für den Programmierer abgenommen, zumindest für denjenigen, der die richtigen Tools verwendet.
Visual C++ ist eines dieser richtigen Tools. Seine codegenerierenden Assistenten können innerhalb von Sekunden das Gerüst für eine betriebsbereite Windows-Anwendung erstellen. Die zu Visual C++ gehörende Klassenbibliothek û die Microsoft Foundation Classes û ist für die Entwicklung von Windows-Software mit verschiedenen C++-Compilern zum Industriestandard geworden. Die visuellen Editierhilfen machen das Layout von Menüs und Dialogfeldern zum Kinderspiel. Die Zeit, die Sie investieren, um die Verwendung dieses Produkts zu erlernen, wird sich bereits bei Ihrem ersten Windows-Programmierprojekt auszahlen.
In diesem Buch erfahren Sie, wie Sie Visual C++ zum Erstellen von 32-Bit-Windows-Anwendungen verwenden, beispielsweise für Datenbankanwendungen, Internet-Anwendungen und Anwendungen, die auf der ActiveX-Technologie aufbauen. Das ist ein sehr umfangreiches Anliegen. Und damit alles auf tausend Seiten Platz hat, müssen einige Dinge unberücksichtigt bleiben. In diesem Buch erfahren Sie deshalb nichts über:
Sie sollten dieses Buch lesen, wenn auf Sie einer der folgenden Punkte zutrifft:
Ein Thema wie das Erstellen von Windows-Programmen in Visual C++ ist sehr weitläufig. Dieses Buch ist unterteilt in Lernkapitel (Kapitel 1 bis 28) und Anhänge (Anhang A bis G). Sie sollten sich nun die Titel der Anhänge ansehen und immer Bezug auf sie nehmen, wenn Ihnen bestimmte Vorgänge nicht klar sind. Die Anhänge sind:
Je nach Ihrer Erfahrung und Ihrem Interesse, die Menüs und die Online-Hilfe zu durchforsten, werden Sie diese Kapitel entweder einmal überfliegen und dann nie mehr zu ihnen zurückkehren, oder aber mit Lesezeichen und Einmerkzetteln füllen. Denn obwohl diese Kapitel keine Beispielanwendungen enthalten, erfahren Sie dort eine Menge.
Hauptteil des Buches sind die Kapitel 1 bis 28. In jedem Kapitel lernen Sie eine wichtige Programmieraufgabe oder manchmal auch zwei eng verwandte Aufgaben, wie das Erstellen einer Task-Leiste oder das Hinzufügen der Online-Hilfe, für eine Anwendung kennen. Jedes Kapitel enthält genaue Anweisungen, wie Sie eine oder mehrere funktionsfähige Anwendungen erstellen.
Welches Windows-Programm besitzt kein Dialogfeld, kein Editierfeld oder Schaltflächen? Dialogfelder und Steuerelemente sind für die Windows-Benutzeroberfläche sehr wichtig und sie alle, auch die einfache Schaltfläche oder ein Textfeld, sind Fenster. Mit den allgemeinen Windows-Steuerelementen kommt Ihnen die Lernzeit, die Benutzer für andere Programme investiert haben, und die Programmierzeit, die Entwickler in das Betriebssystem gesteckt haben, zugute: Sie können das gleiche Dialogfeld Datei öffnen, die gleiche hierarchische Baumansicht usw. wie jeder andere verwenden. Mehr über diese Steuerelemente erfahren Sie in Kapitel 2 »Dialogfelder und Steuerelemente« und in Kapitel 3 »Gemeinsame Steuerelemente von Windows 95«.
Nachrichten bilden den Kern der Windows-Programmierung. Jeder Vorgang in einem Windows-System, wie das Anklicken der Maus oder das Drücken einer Taste durch den Anwender, löst eine Nachricht aus, die dann an ein oder mehrere Fenster weitergeleitet wird. Visual C++ machte das Schreiben von Code, der diese Nachrichten empfängt und auf sie reagiert, einfach. Kapitel 4 »Nachrichten und Befehle« geht auf die Grundlagen von Nachrichten ein und beschreibt, wie die MFC und andere Bestandteile von Visual C++ Ihnen den Umgang damit erleichtern.
Bei diesem Modell handelt es sich um ein Paradigma, eine bestimmte Betrachtungsweise. Für das Design des Grundgerüsts gingen die Entwickler des Programms von der Annahme aus, daß jedes Programm etwas besitzt, das in einer Datei gespeichert werden soll. Diese gesammelte Information wird als Dokument bezeichnet. Eine Ansicht ist eine Art, dieses Dokument darzustellen. Es ergeben sich viele Vorteile, wenn Ansichten und Dokument getrennt sind. In Kapitel 5 »Dokumente und Ansichten« finden Sie Näheres darüber. Mit den MFC stehen Ihnen Klassen zur Verfügung, von denen die Dokument- und Ansichtsklasse abgeleitet werden kann, so daß Programmieraufgaben wie das Implementieren von mehrseitigen Dokumenten kein Problem mehr sind.
Ihr Windows-Programm mag überaus intelligent sein û wenn Sie jedoch nicht in der Lage sind, dem Benutzer durch Einblenden von Worten oder Bildern die Vorgänge mitzuteilen, kennt niemand den vom Programm ausgeführten Vorgang. Ein bemerkenswert großer Anteil dieser Aufgabe wird von den Ansichtsklassen automatisch erledigt (einer der Vorteile des Dokument-Ansichten-Modells). Mitunter müssen Sie das Zeichnen jedoch auch selbst übernehmen. Näheres über Gerätekontexte, das Durchführen von Bildläufen u.ä. erfahren Sie in Kapitel 6 »Zeichnen auf dem Bildschirm«.
Manchmal ist es kinderleicht, Ihrem Programm Druckmöglichkeiten hinzuzufügen, weil der für das Zeichnen auf dem Bildschirm verwendete Code auch für die Ausgabe auf Papier verwendet werden kann. Soll jedoch mehr als eine Seite mit Informationen gedruckt werden, ist das Ganze etwas komplizierter. Näheres darüber finden Sie in Kapitel 7 »Drucken und Seitenansicht«. Darüber hinaus enthält das Kapitel Informationen über Abbildungsmethoden, Kopf- und Fußzeilen u.ä.
Einiges, wie die Anzeige eines Rechners oder ein Online-Chat-Fenster, haben nur vorübergehenden Bestand. Aber die meisten Programme können ihre Dokumente in einer Datei speichern und diese Datei wieder öffnen und laden, um ein gespeichertes Dokument wiederherzustellen. Die MFC machen diesen Vorgang durch die Verwendung von Archiven und die erweiterte Verwendungsmöglichkeit der Dateioperatoren >> und << enorm einfach. Sie erfahren mehr über das Lesen von und das Schreiben in Dateien in Kapitel 8 »Persistenz und Dateioperationen«.
ActiveX ist der Nachfolger von OLE. Diese Technologie erleichtert die Kommunikation zwischen Anwendungen auf Objektebene und ermöglicht das Einbetten eines Word-Dokuments in eine Excel-Tabelle bzw. das Einbetten eines beliebigen Objektes aus einer Vielzahl verschiedener Objekte in eine beliebige ActiveX-Anwendung. Zum Thema ActiveX finden Sie Näheres in Kapitel 13 »ActiveX-Konzepte«, Kapitel 14 »Eine ActiveX-Container-Anwendung«, Kapitel 15 »Eine ActiveX-Server-Anwendung«, Kapitel 16 »Einen Automatisierungs-Server entwickeln« und Kapitel 17 »Ein ActiveX-Steuerelement erstellen«.
Microsoft hat erkannt, daß eine verteilte Rechner-Umgebung, in der die Arbeit gemeinsam von zwei oder mehr Computern ausgeführt wird, immer mehr verbreitet ist. Programme müssen miteinander kommunizieren können, Anwender müssen Nachrichten über ein LAN oder weltweit senden. Die MFC enthalten Klassen, die diese Art der Kommunikation unterstützen. Folgende vier Kapitel befassen sich mit dem Internet: Kapitel 18 »Sockets, MAPI und das Internet«. Kapitel 19 »Internet-Programmierung mit den WinInet-Klassen«, Kapitel 20 »Ein ActiveX-Steuerelement für das Internet erstellen» und Kapitel 21 »Die Active Template Library (ATL)«.
Die Datenbankprogrammierung wird immer einfacher. Mit ODBC, dem Open DataBase Connectivity-Paket von Microsoft, können Sie in Ihrem Code API-Funktionen aufrufen, die Ihnen den Zugriff auf eine große Auswahl an Datenbankformaten geben, wie z.B. Oracle, dBase, Excel-Kalkulationstabellen, Textdateien, alte Großrechner-Systeme, die SQL verwenden usw. Sie rufen eine Standard-ODBC-Funktion auf, und der mit dem Datenbankprogramm mitgelieferte ODBC-Treiber führt die Übersetzung aus. Die Details sind in Kapitel 22 »Datenbank-Zugriff« und in Kapitel 23 »Die Enterprise-Edition« beschrieben.
In Special Edition Visual C++5 werden bestimmte Formatkonventionen und Symbole verwendet, die für ein leichteres Verständnis dieses Buchs sorgen sollen. Im folgenden sind die verwendeten Auszeichungsarten, Absatzformate und Symbole erläutert.
In der folgenden Tabelle sind die Schriftauszeichnungen erläutert, durch die in Special Edition Visual C++5 bestimmte Begriffe hervorgehoben sind.
Tabelle E.1: Auszeichnungsarten
Auszeichnung |
Bedeutung |
Kursiv |
Erste Erwähnung neuer Begriffe oder Ausdrücke sowie Bestandteile der Programmoberfläche. |
Fett |
Internet-URLs |
Tastatur |
Tastenbezeichnungen wie z.B. (Cursor oben) |
Programmcode |
Klassennamen, Funktionsnamen, Nachrichtenkonstanten und Schlüsselworte des Visual-Basic-Programmcode. |
Dieses Buch enthält sehr viel Code, der in Listings angezeigt wird. Listings sehen folgendermaßen aus:
Listing 1: Beispiellisting |
CHostDialog dialog(m_pMainWnd);
if (dialog.DoModal() == IDOK)
{
AppSocket = new CSocket();
if (AppSocket->Connect(dialog.m_hostname,119))
{
while (AppSocket->GetStatus() == CONNECTING)
{
YieldControl();
}
if (AppSocket->GetStatus() == CONNECTED)
{
CString response = AppSocket->GetLine();
SocketAvailable = TRUE;
}
}
}
if (!SocketAvailable)
{
AfxMessageBox("Can't connect to server. Please
quit.",MB_OK|MB_ICONSTOP);
}
Der Code im Buch soll Ihnen in erster Linie den jeweiligen Vorgang verständlich machen, und ist weniger für die Eingabe gedacht. Den vollständigen Code finden Sie auf der CD. Im Buch wird mitunter gezeigt, wie der Code für eine Anwendung entwickelt wird, so daß mehrere Versionen eines Codeblocks angegeben werden; die CD enthält nur die endgültige Version. Die Beispiele auf der CD wurden mit der englischen Version von Visual C++ erstellt, weshalb Menübeschriftungen etc. englisch sind.
Absätze in diesem Format enthalten Warnungen vor unbeabsichtigten Aktionen und müssen ernst genommen
werden! Sie sollten unbedingt gelesen werden.
Absätze in diesem Format enthalten Ratschläge zur Behebung von Fehlern, die im aktuellen Zusammenhang
häufig auftreten.
Soweit zur Einführung. Sie wissen nun alles Notwendige und welche Informationen besondere Beachtung verdienen. Nun können Sie sich direkt ins Geschehen stürzen und alles über das Schreiben von Windows-Anwendungen mit den MFC lernen, um anschließend Ihre eigenen Programme zu entwickeln! Viel Glück und viel Spaß dabei!