Visual C++ Ein- und Ausgaben

Page updated: 26. Juli 2006


Inhalt: Das Programm - Statischer Text - Eingabefeld - Buttons - Textfeld - Tab Order - Member Variable - Message Maps - Programmierung der Funktion

Demoprojekt ein_ausgabe.zip

Das Programm.

Eingaben können in VC++ über ein Editfeld, Ausgaben über ein Textfeld (unter anderem) realisiert werden. Das Demoprogramm übernimmt die Eingabe mit Klick auf OK Knopf und gibt die Eingabe mit Zusatztext wieder aus:

Programm

Über den Assistenten zur Erstellung wird wie beim Aufbau von VC++ Programmen erläutert vorgegangen. Falls man nach der Erstellung der dialog-basierenden Anwendung mit dem Assistenten den Fenstertitel ändern möchte, ist dies über die Eigenschaften (engl. Properties) des Dialogfensters möglich. Dort läßt sich auch die Schrift für das Dialogfenster inkl. aller noch einzufügenden Objekte einstellen (Button Font), ändern Sie nicht die ID Bezeichnung:

Eigenschaften Dialog

TOP

Statischer Text.

Toolbox Textfeld Der Text "Bitte Ihren Namen eingeben:" ist ein statisches Textfeld (dessen Text wird nie geändert) und über die Toolbox (dt. Werkzeugkiste) eingefügt. Über die Eigenschaften des Textfeldes läßt sich der Anzeigetext festlegen (ändern Sie nicht die ID Bezeichnung IDC_STATIC):

Eigenschaften Textfeld

TOP

Eingabefeld.

Toolbox Editfeld Das Editfeld für die Eingabe wird über die Toolbox eingefügt. Vergeben Sie bei den Eigenschaften des Editfeldes eine neue ID Bezeichung, zum Beispiel IDC_Eingabe (IDC_ sollten Sie belassen, steht nach VC++ Konvention für ID Control, Control = Steuerelement):

Eigenschaften Edit

TOP

Die Buttons.

Der vom Erstellungsassistenten OK Button wird gelöscht (aber nicht der Abbrechen Button) und aus der Toolbox ein neuer Button eingefügt, über die Eigenschaften mit &OK beschriftet (das & Zeichen vor dem Buchstaben O sorgt dafür, daß man auch mit ALT-O statt der Maus den Knopf wählen kann) und eine neue ID, zum Beispiel IDC_OKButton vergeben. Zusätzlich ist bei der Karte Styles die Eigenschaft "Default Button" zu aktivieren (ein Druck der Enter Taste ist gleichbedeutend mit einem Mausklick auf diesen Button):

Eigenschaft Button

Beim den durch den Erstellungsassistenten eingefügten Abbrechen Button wird bei den Eigenschaften die Beschriftung zu &Ende abgeändert, aber ändern Sie nicht die ID Bezeichnung IDCancel!

TOP

Textfeld zur Ausgabe.

Als Ausgabeobjekt wird wiederum ein Textfeld aus der Toolbox gewählt, dessen Eigenschaften wie folgt eingestellt werden. Ändern Sie die ID zum Beispiel zu IDC_Ausgabe und entfernen Sie den Inhalt von Caption (sonst ist bei Programmstart schon eine Anzeige "Static" vorhanden). Unter dem Reiter Styles können Sie die zentrierte Ausgabe und den vertieften Rand einstellen:

Eigenschaften Textfeld

Hinweis: Ein Textfeld kann, wie der Name schon sagt, nur Text ausgeben. Wollen Sie Zahlen ausgeben, müssen die Zeichenketten mit den in Standard C/C++ üblichen Funktionen umgewandelt werden oder mit der Format Methode der VC++ Klasse CString, die prinzipiell wie die sprintf() Funktion in C arbeitet:

m_Ausgabe.Format("%.1f", 123.456f);

Die Eigenschaft Caption der Membervariablen enthält die Zeichenkette "123.5" durch Umwandlung des float Wertes 123.456.

TOP

Tabulator Reihenfolge.

Um den Objekten im Dialogfenster eine gewünschte Reihenfolge für die Tabulatortaste zuzuweisen und außerdem festzulegen, daß der Cursor bei Programmstart im Eingabefenster steht, ist im Menü LAYOUT - TABORDER zu wählen und die Reihenfolge durch Mausklicks auf die einzelnen Objekte festzulegen:

Tab Order

TOP

Member Variable.

Damit ist das Design des Dialogfensters abgeschlossen. Als nächstes müssen sogenannte Membervariablen für das Engabe- und das Ausgabefeld festgelegt werden. Damit haben Sie im Programm Zugriff auf deren Inhalte. Dazu wird der Klassenassistent aufgerufen, Reiter "Member Variable". Für IDC_Ausgabe und IDC_Eingabe werden über den Button "Variable hinzufügen" die beiden Variablen m_Ausgabe und m_Eingabe der Kategorie Value (dt. Wert) vom Typ CString eingefügt, die Länge der Zeichen bei der Eingabe auf maximal 20 Zeichen begrenzt. Es ist VC++ Konvention, die Namen der Membervariablen mit m_ beginnen zu lassen. Der Datentyp CString ist eine Klasse in VC++, die der ANSI C++ STL Klasse String ähnelt und demzufolge deren Eigenschften und Methoden hat - und viel mehr.

Member Variable

TOP

Message Maps.

Nun muß festgelegt werden, daß der OK Button auf einen Mausklick reagiert. Dazu wird der Klassenassistent aufgerufen, Reiter "Message Maps". Für die Objekt-ID dieses Buttons wird als zu reagierende Message an den Event Handler BN_CLICKED ausgewählt und der Button "Funktion einfügen" (engl. Add Function) gewählt. Nehmen Sie den Vorschlag für den Namen der Funktion an. In der Abbildung ist der Button zum Hinzufügen der Funktion deaktiviert, weil man nicht eine zweite Funktion für die gleiche Aktion programmieren kann.

Message Maps

TOP

Programmierung der Funktion.

Mit dem Button "Edit Code" gelangen Sie zu der .cpp Datei, in der der folgende Code für die Funktion programmiert werden muß.

void CEin_ausgabeDlg::OnOkbutton()
{
    UpdateData(true);
    m_Ausgabe = "Hallo " + m_Eingabe + "!";
    UpdateData(false);
}

Die Zuweisung für m_Ausgabe folgt der üblichen Syntax für die STL von Standard C++. Die Membervariablen enthalten jedoch nicht automatisch die Werte, die im Fenster des laufenden Programmes zu sehen sind - sie müssen in die Membervariablen übertragen werden. Dazu dient die Funktion UpdateData() mit dem aktuellen Parameter true. Auch wenn im Programm Membervariablen ein neuer Wert zugewiesen wurde, erscheinen Sie nicht automatisch auf dem Bildschirm. Mit der Funktion UpdateData() und dem aktuellen Parameter false werden sie angezeigt.

Damit ist das am Anfang dieser Webseite gezeigte Programm fertig.

TOP



Dr. J. Kubiak j.kubiak@gmx.net