Michael Schumann Windows Power-Programmierung
--- Aus dem Bereich Com puterliteratu r Effektiv Starten mit Turbo C++ von Axel Kotulla Programmieren mit Turbo C++ 3.1 fur Windows von Gerd Kebschull Arbeiten mit MS-DOS QBasic von Michael Halvorson und David Rygmyr (Ein Microsoft PressNieweg-Buch) Programmieren mit Visual Basic for DOS von Frederik Ramm Effektiv Starten mit Visual Basic von Dagmar Sieberichs und Hans-Joachim KrOger Das Vieweg Buch zu Visual Basic 2.0 fur Windows von Andreas Maslo Das Vieweg Buch zu Borland C++ 3.0 von Axel Kotulla Windows Power-Programmierung von Michael Schumann 100 Rezepte fur Turbo Pascal von Erik Wischnewski Die Turbo Vision zu Turbo Pascal 7.0 von Arnulf Wallrabe Grafik und Animation mit Borland Pascal 7.0 von Andreas Bartel Systemprogrammierung OS/2 2.x von Frank Eckgold ~-Vieweg
Michael Schumann Windo~s Po~er- Programmierung System- und Anwendungsprogrammierung mit Ba1and Pascal 7.0 und Turbo Pascal for Windo'vVS at Vleweg
Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor und der Verlag iibernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung iibernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. Aile Rechte vorbehalten Friedr. Vieweg & Sohn Verlagsgesellschaft mbh, BraunschweigIWiesbaden, 1993 Softcover reprint of the hardcover lst edition 1993 Der Verlag Vieweg ist ein Unternehmen der Verlagsgruppe Bertelsmann International. Das Werk einschlieblich aller seiner Teile ist urheberrechtlich geschiitzt. Jede Verwertung au6erhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzuliissig und stratbar. Das gilt insbesondere rur Vervielfliltigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen System en. Gedruckt auf sliurefreiem Papier ISBN-13: 978-3-322-87236-4 e-isbn-13: 978-3-322-87235-7 DOl: 10.1007/978-3-322-87235-7
Fur Nicole, Malte, Lea und Niklas
Vorwort VII Vorwort Programmierung unter Windows - ein Mysterium? Mit Turbo Pascal fur Windows kein Problem, aber... Bilder in einer Dialogbox anzeigen? Tone erzeugen? Selbsterstellte Screensaver? Dateimanager erweitem? Programme ohne Icon? Drag and Drop? Grafikformate? Das Windows Hilfesystem? Leitgedanke dieses Buchs war die Idee, Turbo oder Borland Pascal ProgrammiererInnen Tur und Tor zu den professionellen Programmiertechniken unter Windows zu offnen, ohne dabei 900 von 1000 Seiten mit Stoff zu fullen, der sowohl in den Handbuchem, als auch in den vielen anderen Buchem zu Turbo Pascal fur Windows zu finden ist. All die vielen Kleinigkeiten, die man dort aber nicht findet und fur die man viele Stunden oder sogar Nachte vor dem PC verbringen mub, sind hier zusammengetragen. Und auf all die Dinge, die in Einsteigerwerken und auch den Handbuchem zu finden sind, wurde bewubt verzichtet. Die Themen sind so gegliedert, dab man das Werk jederzeit als Nachschlagewerk weiterverwenden wird - obwohl es beim ersten Mal bequem am Stuck durchgearbeitet werden kann. Bevor wir in die Materie einsteigen, mochte ich ein paar fachfremde Worte loswerden. An erster Stelle mochte ich Herm Robert Schmitz yom Vieweg Verlag fur seine hervorragende und vor allem sehr motivierende Unterstutzung und fur sein Verstandnis bei mehreren Verschiebungen des Abgabetermins fur mein Manuskript danken. Den Firmen Borland (fur Helga, die B-Version von BP 7.0 und ein BP 7.0 Paket), Microsoft (fur das geliehene MDK) und FAST (fur die geliehene Screen-Machine) mochte ich ebenfalls fur ihre Unterstutzung bei diesem Projekt danken. Meinen Kindem Malte, Lea, Niklas und natiirlich auch meiner Frau Nicole gebuhrt der meiste Dank - sie versorgen mich mit der Kraft, die ich (nicht nur fur dieses Buch) benotige. Nicole mochte ich an dieser Stelle besonders fur ihr Engagement beim Korrekturlesen danken. Ihr ist es zu verdanken, dab Ihnen als LeserIn viele Formulierungskatastrophen erspart bleiben. Nun wunsche ich Ihnen viel SpaB mit dies em Buch.
Inhalt IX Inhalt 1 Einleitung... 1 2 Grundlagen... 3 2.1 Die Windows Moduln... 5 2.2 Definitionen... 8 2.3 Nachrichtensystem... 11 2.4 Stringverarbeitung... 14 2.5 Standard-Programmgeriist... 19 3 Entwicklungswerkzeuge... 27 3.1 Windows SDK... 28 3.2 SDK- und Borland Tools... 30 3.3 Public Domain und Shareware Tools... 34 3.4 Weitere Microsoft Tools... 37 4 Menu-Spezialitaten... 39 4.1 Menus zur Laufzeit andern... 39 4.2 Eigene Pop-Up-Menus uberall....45 4.3 Das Systemmenu... 49 4.4 Grafiken in Menus... 51 4.5 Toolbars... 60 5 Dialogboxen... 69 5.1 Borland Design... 70 5.2 Eigene Bit-Buttons... 77 5.3 Icons und Bitmaps in Dialogen... 81 5.4 Windows Standarddialoge... 89 5.5 Nicht modale (Standard-)Dialoge... 99 5.6 Standarddialoge modifizieren... 110
x InhaLt 6 Appiikationsdesign........ 113 6.1 Dialogbox als Programmfenster.... 113 6.2 Startverhalten...... 115 6.3 Bei mehrfachem Aufruf... 121 6.4 Mausaktionen einfangen... 127 6.5 Langwierige Berechnungen... 136 6.6 Daten indiziert speichern... 141 7 Textorientiertes... 151 7.1 Fontarten und GraBen...... 151 7.2 Text auf dem Bildschirm... 160 7.3 FlieBtext und Tabellen... 165 7.4 Editorobjekte im Fenster... 171 7.5 Datenbrowser... 179 8 Grafikorientiertes... 185 8.1 In Bitmaps zeichnen... 185 8.2 Foto vom Fenster als Bitmap... 189 8.3 Farbtiefe manipulieren...... 194 8.4 Bitmaps intern...... 199 8.5 Bitmaps speichern und laden...... 207 8.6 ROP-Codes... 217 9 Hintergrundprogramme... 221 9.1 Timer... 221 9.2 Hooks... 228 9.3 Animierte Icons... 235 9.4 Bewegter Hintergrund......... 241 9.5 Drag & Drop Miilleimer.... 247 10 Drucken...... 253 10.1 Druckerauswahl und -konfiguration... 253 10.2 SeitenmaB und Raster ermitteln... 258 10.3 Druck abbrechen - Dialog... 264
Inhalt XI 11 Windows Hilfesystem... 273 11.1 Wie funktioniert's?... 274 11.2 Gliederung und Texte... 278 11.3 Animierte Grafik im Hilfetext...... 282 11.4 Hilfedatei erzeugen und einbinden... 286 12 Windows erweitern... 289 12.1 Dateimanager... 289 12.2 Systemsteuerung... 294 12.3 Bildschirmschoner... 298 12.5 Mauszeiger andern... 307 13 Multimediales... 311 13.1 Digitalisierte Klange abspielen... 312 13.2 Klingende Dialogbox... 315 13.2 WAV-Dateien lesen... 319 13.3 CD-Player... 324 13.4 Video mit der Screen Machine... 331 14 Novell Netzwerk Tips......... 335 14.1 Wer bin ich? User ermitteln... 336 14.2 Novell PaBwortabfrage nutzen... 339 14.3 Logging und Konsole einsetzen... 343 14.4 Screensaver mit Novell-Zugriffsschutz... 345 14.5 Transacton Tracking... 349 15 Windows Interna... 353 15.1 Dekompression mit LZExpand... 353 15.2 Windows ruft DOS-Interrupt... 355 15.3 Zugriff auf die ersten 64 K und BIOS... 357 15.4 Zugriff auf den ganzen DOS-Speicher... 360 15.5 GroBe Speicherblocke ansprechen... 362 15.5 Screensaver aktivieren... 366 15.6 Windows: Raus und rein... 368