Erste Schritte: Einfache Windows .NET-Programme mit Visual C++

Veröffentlicht: Dezember 2009
Von Richard Kaiser und Alexander Kaiser

In dieser Einführung wird gezeigt, wie man mit Visual Studio 2010 Windows-Programme mit einer grafischen Benutzeroberfläche in C++ entwickeln kann. Hier soll aber nicht nur gezeigt werden, dass das möglich ist, sondern auch, dass das sehr einfach ist.

Dieser Artikel ist ein kurzer Auszug aus dem Buch „C++ mit Microsoft Visual C++ 2008“ (ISBN 978-3540238690), das C++ mitsamt den Visual C++-Erweiterungen (C++/CLI) umfassend darstellt. Der Verfasser dieses Buches ist ein erfahrener C++- und C#-Trainer, der auch für Firmenschulungen zur Verfügung steht.

Ein erstes kleines Windows-Programm

In Visual Studio 2010 findet man unter Datei|Neu|Projekt Vorlagen für verschie­dene Arten von Anwendungen. Eine Windows-Anwendung mit einer graphischen Benutzeroberfläche erhält man mit dem Projekttyp CLR (Common Language Runtime) und der Vorlage Windows Forms-Anwendung. Gibt man dann nach Name einen Namen und nach Ort ein Verzeichnis ein, legt Visual Studio nach dem Anklicken des OK-Buttons ein solches Projekt an:

Anschließend werden einige Tools der IDE angezeigt. Die hier rechts eingeblende­te Toolbox wird angezeigt, wenn das Formular angezeigt wird und man mit der Maus über den Toolbox-Rider fährt, oder mit Ansicht|Toolbox:

Das Formular (hier Form1) ist der Ausgangspunkt für alle Windows Forms-Anwendungen. Es entspricht dem Fenster, das beim Start des Programms angezeigt wird:

 

Ein Formular kann mit den in der Toolbox verfügbaren Steuerelementen (Con­trols) gestaltet werden. Die Toolbox enthält auf verschiedenen Registerkarten (Allgemeine Steuer­elemente, Container usw.) praktisch alle unter Windows üblichen Steuer­elemente.

Um ein Steuerelement aus der Toolbox auf das Formular zu setzen, zieht man es einfach von der Toolbox auf das Formular. Oder man klickt mit der Maus zuerst auf das Steuerelement und dann auf die Stelle im Formular, an die die linke obere Ecke kommen soll.

Beispiel:    Nachdem man ein Label (Zeile sieben in Allgemeine Steuerelemente, mit dem großen A), eine TextBox (vierte Zeile von unten, Aufschrift ab) und einen Button (zweite Zeile mit der Auf­schrift ab) auf das Formular gesetzt hat, sieht es etwa folgender­maßen aus:

Durch diese Spielereien haben Sie schon ein richtiges Windows-Programm er­stellt – zwar kein besonders nützliches, aber immerhin. Sie können es folgender­maßen starten:

mit Debuggen|Debuggen starten von der Menüleiste, oder

mit F5 von einem beliebigen Fenster in Visual Studio oder

durch den Aufruf der vom Compiler erzeugten Exe-Datei.

Vergessen Sie nicht, Ihr Programm zu beenden, bevor Sie es weiterbearbeiten. Sie können den Compiler nicht erneut starten, solange das Pro­gramm noch läuft.

Die zuletzt auf einem Formular (bzw. im Pull-down-Menü des Eigenschaften­fensters) angeklickte Komponente wird als die aktuell aus­gewählte Komponente bezeichnet. Man erkennt sie an den kleinen Quadraten an ihrem Rand, an denen man mit der Maus ziehen und so die Größe der Komponente verändern kann.

Beispiel: Im letzten Beispiel ist button1 die aktuell ausgewählte Komponente.

Im Eigenschaftenfenster (Kontextmenü der Kom­ponente auf dem Formular, oder Ansicht|Weitere Fenster|­Eigenschaftenfenster) werden die Eigenschaften (properties) der aktuell ausgewählten Komponente angezeigt:

In der linken Spalte stehen die Namen und in der rechten die Werte der Eigen­schaften. Mit der Taste F1 erhält man eine Beschrei­bung der Eigen­schaft.

Den Wert einer Eigenschaft kann man über die rechte Spalte verändern. Bei manchen Eigenschaften kann man den neuen Wert über die Tastatur eintippen. Bei anderen wird nach dem Anklicken der rechten Spalte ein kleines Dreieck für ein Pull-down-Menü ange­zeigt, über das ein Wert ausgewählt werden kann. Oder es wird ein Symbol mit drei Punkten „…“ angezeigt, über das man Werte eingeben kann.

Beispiel:    Bei der Eigenschaft Text kann man mit der Tastatur einen Text einge­ben. Bei einem Button ist dieser Text die Aufschrift auf dem Button (z.B. „OK“), und bei einem Formular die Titelzeile (z.B. „Mein erstes C++-Pro­gramm“).

Bei der Eigenschaft BackColor (z.B. bei einem Button) kann man über ein Pull-down-Menü die Hintergrundfarbe auswäh­len.

Klickt man die rechte Spalte der Eigenschaft Font und danach das Sym­bol „…“ an, kann man die Schriftart der Eigenschaft Text auswählen.

Erste Schritte in C++

Als nächstes soll das Programm aus dem letzten Abschnitt so erweitert werden, dass als Reaktion auf das Anklicken eines Buttons Anweisungen ausgeführt werden.

Windows-Programme können Benutzereingaben in Form von Mausklicks oder Tastatureingaben entgegennehmen. Dadurch wird im Pro­gramm ein sogenanntes Ereignis ausgelöst, das zum Aufruf einer Funktion führen kann. Die beim Anklicken eines Buttons aufgerufene Funktion erhält man am einfachsten durch einen Doppel­klick auf den Button im Formular. Dadurch erzeugt Visual Studio die folgende Funktion:

Zwischen die geschweiften Klammern „{“ und „}“ schreibt man dann die Anwei­sungen, die ausgeführt werden sollen, wenn das Ereignis Click eintritt. Das können beliebige C++-Anweisungen sein.

In einem ersten Beispiel soll beim Anklicken des Buttons der Text "Hallo Welt" in die TextBox textBox1 geschrieben werden. Das erreicht man, indem man nach dem Namen des Steuerelements (textBox1) und -> den Namen der Eigenschaft (Text) eintippt und dann nach dem Zeichen „=“den Text "Hallo Welt" und ein Semikolon:

private: System::Void button1_Click(System::Object^  sender, 

                                    System::EventArgs^  e) {

textBox1->Text="Hallo Welt";

}

Wenn Sie dann das Programm mit F5 starten und dann button1 anklicken, wird diese Funktion aufgerufen und der Text in die TextBox geschrieben.

In einem zweiten Beispiel soll vor allem gezeigt werden, wie Visual Studio einem Programmierer hilft, sich in den vielen Eigenschaften zurecht­zufinden und Schreibfehler zu vermeiden. Diese Eigen­schaften werden aufgelistet, nachdem man den Namen des Steuerelements (z.B. textBox1) und -> sowie eventuell noch Anfangsbuchstaben der Eigenschaft eingetippt hat (Intellisense). Viele dieser Eigenschaften werden auch im Eigen­schaftenfenster angezeigt. Allerdings ist Intellisense in der Beta 2 von Visual Studio 2010 für C++/CLI noch nicht verfügbar. Deswegen hier nur ein Screenshot von Visual Studio 2008:

Will man der Eigenschaft BackColor (die Hintergrundfarbe der TextBox) einen Wert zuweisen, wählt man diese hier aus und tippt anschließend ein Gleichheitszeichen ein. Zulässige Werte für eine Farbe werden im Eigenschaftenfenster nach dem Aufklappen des Pull-down-Menüs angeboten (z.B. Yellow für die Farbe Gelb):

Diese Werte müssen im Programm nach Color:: angegeben werden. Schreibt man jetzt die Anweisung

textBox1->BackColor=Color::Yellow;

zwischen die geschweiften Klammern

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

  textBox1->BackColor=Color::Yellow;

}

erhält die Eigenschaft BackColor von textBox1 beim Aufruf dieser Funktion den Wert Color::Yellow. Wenn Sie das Programm jetzt mit F5 starten und dann button1 anklicken, wird diese Funktion aufgerufen und die TextBox erhält die Hintergrundfarbe Gelb.

Zusammenfassung

Auch wenn dieses zweite Programm noch nicht viel sinnvoller ist als das erste, haben Sie doch gesehen, wie mit Visual Studio Windows-Anwendungen entwickelt wer­den. Dieser Entwicklungsprozess besteht immer aus den folgenden Aktivitäten:

  1. Man gestaltet die Benutzeroberfläche, indem man Steuerelemente aus der Toolbox auf das Formular setzt (drag and drop) und ihre Eigenschaften im Eigenschaftenfenster oder das Layout mit der Maus anpasst.
  2. Man schreibt in C++ die Anweisungen, die als Reaktion auf Benut­zereinga­ben erfolgen sollen.

Zurück: Überblick | Weiter: Windows  .NET Steuerelemente mit Visual C++ ansprechen