Das Visual C++ 1.5 Buch - GBV

8
Das Visual C++ 1.5 Buch Micha Fritz Rainer Aumiller DÜSSELDORF • SAN FRANCISCO • PARIS • SOEST (NL)

Transcript of Das Visual C++ 1.5 Buch - GBV

Page 1: Das Visual C++ 1.5 Buch - GBV

Das Visual C++ 1.5 Buch

Micha Fritz

Rainer Aumiller

DÜSSELDORF • SAN FRANCISCO • PARIS • SOEST (NL)

Page 2: Das Visual C++ 1.5 Buch - GBV

Inhaltsverzeichnis

Vorwort

Zu diesem Buch Für wen ist dieses Buch? Gliederung des Buches

Kapitel 1: Überblick über das Visual C++-Konzept

Die Visual Workbench Der Editor Der AppWizard Das AppStudio Der ClassWizard Die Klassenbibliothek MFC 2.5 Der Compiler Der Windows-Debugger Der ClassBrowser Graphischer Überblick Der Begriff Application Frameworks

XIII

XIII XIV XIV

3 4 4 5 5 6 7 7 8 8 9

Kapitel 2: Die Programmoberfläche

Die Symbolleiste oder Toolbar Die Statuszeile Der Menü-Überblick Der Editor Die Menüs und ihre Menüpunkte

Das Menü FILE

Das Menü EDIT

Das Menü VIEW

Das Menü PROJECT

Das Menü BROWSE

Das Menü DEBUG

Das Menü TOOLS

Das Menü OPTIONS

Das Menü WINDOW

Das Menü HELP

13

16 17 18 19 20 20 23 26 28 34 40 44 45 55 57

Kapitel 3: Das visuelle Werkzeug AppStudio

Das Hauptfenster Der Ressourcen-Browser

59

61 61

Page 3: Das Visual C++ 1.5 Buch - GBV

VI Das Visual C+ + 7.5 Buch

Die von AppStudio unterstützten Ressourcen Accelerator-Table Bitmaps

Rasteranzeige Symboländerung Zuordnung eines Symbols

Dialogboxen erstellen Menüs editieren String-Table

63 63 65 66 67 68 69 69 69

Kapitel 4: QuickWin-Programme Übersicht Beispielprogramm

Quelltext Die einzelnen Schritte zum QuickWin-Programm

Projektverzeichnis erstellen Quelltexte in das erstellte Verzeichnis kopieren Neues Projekt erstellen Projekt kompilieren Programm ausführen

71 73 74 74 78 78 79 79 81 82

Kapitel 5: Debuggen von Programmen Ein Beispiel Korrektur der Kompilierungsfehler Programmtest (der erste) Debuggen (schrittweise) Variablenwerte anzeigen Programmtest (der zweite) Haltepunkte setzen Lokale Variablen anzeigen lassen Programmtest (der dritte) Ausführung bis zum Cursor

83

85 87 89 91 91 92 92 93 94 94

Kapitel 6: „Dlrow" - ein Windows-Programm 97 Erstellung des Programmskeletts 99

Die Main-Frame-Fenster-Klasse 101 Die Dokument-Fenster-Klasse 103

Einfügen einer Elementvariablen in die View-Klasse 104 Einfügen einer Nachrichten-Elementfunktion in die View-Klasse 105

Die Message-Map 105 Die Nachrichten-Elementfunktion editieren 107 CString initialisieren 108

Page 4: Das Visual C++ 1.5 Buch - GBV

Inhaltsverzeichnis VII

Die virtuelle Elementfunktion OnDraw der View-Klasse editieren Die Klasse CDC

Das Programm kompilieren DLROW.H DLROW.CPP DLROWDOC.H DLROWDOC.CPP DLROWVW.H DLROW.CPP

Kapitel 7: Windows-Grundlagenforschungen

Der erste Überblick Programmgerüst erstellen Menüeintrag erstellen Menüeintrag mit einer Nachrichten-Elementfunktion verbinden Eine Dialogbox erstellen Eine Dialog-Klasse ableiten Die Dialogbox-Elemente mit einer Nachrichten-Elementfunktion versehen Elementvariablen definieren Nachrichten-Elementfunktionen schreiben Änderungen vornehmen

Programmfunktionalität Programmierschritte Programmgerüst erstellen Die Dialogoberfläche Set Tab Order Variablendeklaration Funktionsrümpfe erstellen Quelltext editieren

Kapitel 8: Die Microsoft Foundation-Klassen und ihre Anwendung

Zum Aufbau Das SmartCopy/Delete-Projekt Ein Programmgerüst mit dem AppWizard erstellen

Zuerst kam der AppWizard Zum generellen Aufbau eines MFC-Programms

Das CWinApp-Objekt Design der Benutzerschnittstelle mit VBX-Steuerelementen

VBX-Steuerelemente installieren Dialogbox für CFormView entwerfen Die Menüleiste entwerfen

108 108 110 111 112 115 116 118 119

123

125 126 128

131 132 137

138 140 144 145 149 149 150 151 154 154 155 156

175

177 178 179 179 180 181 186 187 188 191

Page 5: Das Visual C++ 1.5 Buch - GBV

VIII Das Visual C+ + 1.5 Buch

Die Toolbar anpassen 192 Der IDR_MAINFRAME-String und weitere Anpassungen 194

3D-Dialogboxen und -Steuerelemente in Verbindung mit MFC 196 Elementvariablen für die CFormView-Dialogbox einführen 199

Dialog-Datenaustausch - DDX 199 Elementvariablen für den Dialog-Datenaustausch festlegen 199 Weiterer Nutzen des Dialog-Datenaustauschs 201 Die Realisation des Skripts 204 Dynamische Objekt-Arrays mit CObArray 208

Auswerten von VBX-Aktionen 208 Serialisierung - oder wie kommen meine Daten in eine Datei? 214

Serialisierung und Objekt-Persistenz oder die Hartnäckigkeit eines Objekts zu verschwinden 214

Wie kommen die Daten auf den Bildschirm? 218 Bedienungselemente einführen 219 Eine eigene Klasse für eine Dateiauswahlbox erzeugen 222

Dialogboxverhalten vervollständigen 228 Standard-VBX-Ereignisse 231

Das Ausführen von Arbeiten im »Hintergrund,, 239 Eine neue CString-Klasse ableiten 241 Die Hintergrundverarbeitung anstoßen - einen Timer einrichten 243

Weiter mit OnldleO 245 Die MFC-Klassenbibliothek und die Dateien 253

Eine Datei zum Schreiben oder Lesen öffnen und schließen 254 Daten in eine Datei schreiben oder aus ihr lesen 255 Informationen über eine Datei einholen 256

Verzeichnisse durchsuchen 257 Texte in der Statuszeile ausgeben 260 Die Verknüpfung der Klassen untereinander 263 Menükommandos - oder welche Klasse soll das Kommando verarbeiten? 264

Zugriff von der Dokument-Klasse auf die View-Klasse herstellen 264 Message-Map-Funktionen für die Menüpunkte erstellen 265

Die Verwaltung einer INI-Datei 269 Weitere Verschönerungen 278

Anzeige der Uhrzeit in der Statuszeile 278 Rahmenfenstergröße am Inhalt ausrichten 280 Dateityp registrieren lassen 281

Sonstiges zu SmartCopy 282 Bekannte Probleme 282 Vorschläge für eigene Erweiterungen 282 Praktischer Einsatz 283

Page 6: Das Visual C++ 1.5 Buch - GBV

Inhaltsverzeichnis IX

Kapitel 9: Fortgeschrittene und NT-Programmierung 285 Anwenderdefinierte VBX-Steuerelemente 287

Erstellen eines eigenen VBX-Steuerelementes 288 Grundlagen der VBX-Steuerelemente 289 Visual C++ und Visual Basic 290 Das Programmskelett 290 Erstellen einer Projektdatei für VBX-Steuerelemente 299 Das Pushbutton-VBX-Steuerelement 300

Portierung von Visual C++-16-Bit-Applikationen nach Visual C++-32-Bit-Applikationen 316

Die Portierung von SmartCopy 317 Wie schreibe ich übertragbare Programme? 318

Anwenderdefinierte (VBX-) Steuerelemente - Realisation als DLL für Windows NT 319

Was machen NT-Programmierer ohne VBX-Elemente? 319 Erstellen einer DLL mit einem anwenderdefinierten Steuerelement 320 Simulation einer VBX-Umgebung in Visual C++ für NT 336

ADRESSEN - Ein praktisches ODBC-Beispiel 346 ODBC - Ein Überblick 346 Die Definition der Tabellenstruktur 347 Erzeugen eines Programmskeletts für den Datenbankzugriff 352 Formulare für Datensätze anlegen 354 Datensätze hinzufügen, löschen und editieren 358 Datensätze hinzufügen 359 Datensätze löschen 365 3D-Steuerelemente einführen 366 Die Anzeige der zugehörigen Termine 366 Einen Recordset parametrisieren 367 Daten eines zweiten Recordsets im Formular anzeigen 371 Zwei Recordsets synchronisieren 372 Termine in die Tabelle einlesen 373 Datensätze im Termin-Recordset ändern, hinzufügen und löschen 375 Reaktion auf die Änderung der aktuellen Tabellenzeile 380 Termine an den Terminplaner Schedule+ übermitteln 381 Verbesserungsvorschläge 384

OLE 2.0 384 OLE 2.0-Überblick 385 Der OLE-Server CHARTe 385 Ein CHART-Objekt in eine OLE-Anwendung einfügen 393 Der OLE-Client BILDER 393

Page 7: Das Visual C++ 1.5 Buch - GBV

Das Visual C+ + 1.5 Buch

Referenz 397

Klassenübersicht 399 Die Klasse CWINAPP 399 Die Klasse CDOCUMENT 402 Die Klasse CVIEW 403 Die Klasse CFRAMEWND 403 Die Klasse CDOCTEMPLATE und ihre Abkömmlinge CSINGLEDOCTEMPLATE und CMULTIDOCTEMPLATE 404 Die Klasse CWND 405 Die Klasse COBJECT 406 Die Klasse COBARRAY 406 Die Klasse CARCHIVE 407 Die Klasse CLISTBOX 408 Die Klasse CFILEDIALOG 409 Die Klasse CSTRING 410 Die Klasse CVBCONTROL 411 Die Klasse CFILE 412 Die Klasse CSTATUSBAR 413 Die Klasse CCMDUI 414

Gesucht - gefunden (gängige Probleme und ihre Lösung) 414 INI-Datei verwalten 415 Die Dateiauswahlbox anpassen 415 Persistente Objekte - oder wie kommen meine Dokument-Daten in eine Datei 417 Die Toolbar manipulieren 417 Der Umgang mit der VBX-Picture-Eigenschaft 417 Überschreiben von Elementfunktionen 421 Programmieren und Testen mit Visual Basic 421

Die Toolbar mit TOOLEDIT bearbeiten 422 Eine Beschreibung der CTL3D-Bibliothek 424

Überblick - der 3D-Look 424 Wie CTL3D den Steuerelementen den 3D-Effekt verleiht 425 Voraussetzungen und wichtige Tatsachen 425 CTL3D und die MFC-Klassenbibliothek 426 Die verschiedenen Versionen von CTL3D 427 CTL3D.DLL - das Original 427 CTL3D-Nachrichten 429 Funktionsreferenz 430

Chicago und Cairo 433 Chicago - Windows 95 433 Cairo - das neue Windows NT 434 Fazit 434

Page 8: Das Visual C++ 1.5 Buch - GBV

Inhaltsverzeichnis XI

Anhang A: Zur beiliegenden Diskette Installation der beiliegenden Diskette

Das Programm TOOLEDIT installieren Die Beispielprogramme installieren Die Bibliothek CTL3D installieren

435 437 437 438 438

Anhang B: ASCII-Tabelle

Stichwortverzeichnis

439

445