Erstellen eines Windows Forms-Steuerelements (C++)
Aktualisiert: November 2007
Windows Forms-Steuerelemente sind Komponenten, die Windows Forms-Anwendungen hinzugefügt werden können. (Dies sind GUI-Anwendungen, die für die Common Language Runtime erstellt werden.) Windows Forms-Anwendungen in Visual C++ verwenden .NET Framework-Klassen und andere .NET-Features mit der neuen Visual C++-Syntax.
In diesem Verfahren erstellen Sie ein Windows Forms-Steuerelement, das eine Zahl anzeigt. Diese Zahl wird immer dann erhöht, wenn ein Benutzer auf die Bezeichnung in einer Anwendung klickt. Weiterhin erstellen Sie zum Testen des Steuerelements ein Windows Forms-Anwendungsprojekt.
In dieser exemplarischen Vorgehensweise werden folgende Themen behandelt:
Erstellen eines neuen Projekts
Entwerfen des Steuerelements
Hinzufügen einer benutzerdefinierten Eigenschaft zum Steuerelement
Hinzufügen eines Projekts zum Testen des Steuerelements
Einfügen des Steuerelements in eine Anwendung
Ausführen der Anwendung
Vorbereitungsmaßnahmen
In diesem Thema wird davon ausgegangen, dass Sie die Grundlagen der Programmiersprache C++ beherrschen. Wenn Sie gerade die ersten Schritte beim Erlernen von C++ machen, empfehlen wir "C++ Beginner's Guide" von Herb Schildt, online verfügbar unter https://go.microsoft.com/fwlink/?LinkId=115303.
Unter Video How to: Creating a Windows Forms Control (C++) finden Sie eine Videodemonstration.
Erstellen eines neues Projekts
Die in diesem Abschnitt verwendete Projektvorlage für ein Windows Forms-Steuerelement erstellt ein Benutzersteuerelement. Dies ist ein zusammengesetztes Steuerelement, das andere Steuerelemente enthält.
Alternativ können Sie ein Windows Forms-Steuerelement erstellen, indem Sie eine Klasse direkt aus der Control-Klasse (der Code ist für das Zeichnen des Steuerelements verantwortlich) oder aus der Component-Klasse (ein Steuerelement ohne Benutzeroberfläche) ableiten.
So erstellen Sie ein neues Windows Forms-Steuerelementprojekt
Klicken Sie im Menü Datei auf Neu und anschließend auf Projekt.
Wählen Sie im Bereich Projekttypen im Knoten Visual C++ die Option CLR aus. Wählen Sie dann im Bereich Von Visual Studio installierte Vorlagen die Option Windows Forms-Steuerelementbibliothek aus.
Geben Sie einen Namen für das Projekt ein, z. B. clickcounter.
Geben Sie einen anderen Namen für die Projektmappe ein, z. B. controlandtestapp.
Sie können den Standardspeicherort akzeptieren, einen gewünschten Speicherort eingeben oder einen Speicherort für das Projekt suchen.
Der Windows Forms-Designer wird geöffnet. Er zeigt einen Bereich an, der zum Hinzufügen der Steuerelemente dient, die Sie auf der Steuerelemententwurfsoberfläche positionieren möchten.
Entwerfen des Steuerelements
In diesem Schritt fügen Sie der Steuerelemententwurfsoberfläche ein Label-Steuerelement hinzu. Anschließend legen Sie einige Eigenschaften des Steuerelements selbst und des darin enthaltenen Label-Steuerelements fest.
So legen Sie die Eigenschaften eines Benutzersteuerelements fest
Wenn Sie das Fenster Eigenschaften nicht sehen, klicken Sie im Menü Ansicht auf Eigenschaftenfenster.
Klicken Sie auf das Steuerelement, um es auszuwählen, und legen Sie seine Eigenschaften folgendermaßen fest:
Legen Sie die Size-Eigenschaft auf 100, 100 fest.
Legen Sie die BorderStyle-Eigenschaft auf Fixed3D fest.
Die Begrenzungen der Bezeichnung werden angezeigt, wenn das Steuerelement in einer Anwendung positioniert wird.
Wenn das Fenster Toolbox nicht sichtbar ist, wählen Sie im Menü Ansicht die Option Toolbox aus.
Ziehen Sie ein Label-Steuerelement aus der Toolbox in die Entwurfsoberfläche, und positionieren Sie es ungefähr in der Mitte des Steuerelements.
Legen Sie für die Bezeichnung die folgenden Eigenschaften fest:
Legen Sie die BorderStyle-Eigenschaft auf FixedSingle fest.
Legen Sie die Text-Eigenschaft auf die Ziffer 0 (null) fest.
Legen Sie die Autosize-Eigenschaft auf False fest.
Legen Sie die Size-Eigenschaft auf 30, 20 fest.
Legen Sie die TextAlign-Eigenschaft auf MiddleCenter fest.
Belassen Sie die Name-Eigenschaft unverändert bei label1. (Das ist die Bezeichnung, die auch im Code verwendet wird). Das Steuerelement sollte etwa folgendermaßen aussehen:
Fügen Sie einen Ereignishandler für das Click-Ereignis der Bezeichnung (das Standardereignis für eine Bezeichnung) hinzu, indem Sie auf die Bezeichnung doppelklicken.
Im Bearbeitungsbereich wird die Datei clickcounter.hmit einer leeren Ereignishandlermethode angezeigt.
Hinweis: Wenn Sie mehr Platz benötigen, schließen Sie die Toolbox oder das Eigenschaftenfenster, indem Sie auf das entsprechende Schließfeld klicken oder die Fixierung aufheben, sodass sie automatisch verborgen werden.
Bewegen Sie den Cursor hinter die geschweifte linke Klammer der label1_Click-Methode, drücken Sie die EINGABETASTE, und geben Sie Folgendes ein:
int temp = System::Int32::Parse(label1->Text); temp++; label1->Text = temp.ToString();
IntelliSense zeigt nach der Eingabe des Bereichsauflösungsoperators (::), des Punktoperators (.) oder des Pfeiloperators (->) eine Liste mit gültigen Auswahlmöglichkeiten an. Sie können ein Element markieren und die TAB-TASTE oder die EINGABETASTE drücken oder auf ein Element doppelklicken, um das Element in den Code einzufügen.
Ebenso zeigt Visual Studio, wenn Sie für eine Methode eine öffnende runde Klammer eingeben, gültige Argumenttypen für jede Überladung der Methode an.
Hinzufügen einer benutzerdefinierten Eigenschaft zum Steuerelement
In diesem Schritt definieren Sie eine benutzerdefinierte Eigenschaft, mit der bestimmt wird, ob die im Steuerelement angezeigte Zahl erhöht wird, wenn ein Benutzer auf die Bezeichnung oder auf eine beliebige Position innerhalb des Steuerelements klickt.
So fügen Sie einem Steuerelement eine benutzerdefinierte Eigenschaft hinzu
Platzieren Sie den Cursor hinter den Doppelpunkt des ersten public-Bereichsindikators am Anfang der Datei clickcounterControl.h, drücken Sie die EINGABETASTE, und geben Sie Folgendes ein:
property bool ClickAnywhere { bool get() { return (label1->Dock == DockStyle::Fill); } void set(bool val) { if (val) label1->Dock = DockStyle::Fill; else label1->Dock = DockStyle::None; } }
Wenn Sie die ClickAnywhere-Eigenschaft des Steuerelements auf true festlegen, wird die Dock-Eigenschaft der Bezeichnung auf DockStyle::Fill festgelegt, und die Bezeichnung füllt die gesamte Oberfläche des Steuerelements aus. Ein Klick auf eine beliebige Position innerhalb der Steuerelementoberfläche löst dann ein Click-Ereignis für die Bezeichnung aus, wobei die Zahl in der Bezeichnung erhöht wird.
Wenn die ClickAnywhere-Eigenschaft auf false (der Standardwert) festgelegt ist, wird die Dock-Eigenschaft der Bezeichnung auf DockStyle::None festgelegt. Die Bezeichnung nimmt nicht das gesamte Steuerelement ein, und ein Klick auf das Steuerelement muss innerhalb der Bezeichnungsbegrenzung erfolgen, um ein Click-Ereignis für die Bezeichnung auszulösen und die Zahl zu erhöhen.
Erstellen Sie das Benutzersteuerelement. Klicken Sie im Menü Erstellen auf Projektmappe erstellen.
Wenn keine Fehler auftreten, wird ein Windows Forms-Steuerelement mit dem Dateinamen clickcounter.dll generiert. Sie finden diese Datei in der Projektverzeichnisstruktur.
Hinzufügen eines Projekts zum Testen des Steuerelements
In diesem Schritt erstellen Sie ein Windows Forms-Anwendungsprojekt, in dem Sie Instanzen des clickcounter-Steuerelements in einem Formular positionieren.
Hinweis: |
---|
Sie können die Windows Forms-Anwendung, die Sie zum Testen des Steuerelements verwenden, in Visual C++ oder einer anderen .NET-Sprache wie C# oder Visual Basic schreiben. |
So erstellen Sie ein Windows Forms-Anwendungsprojekt
- Wählen Sie im Menü Datei die Option Neu aus, und klicken Sie dann auf Projekt....
Sie können der Projektmappe auch ein Projekt hinzufügen, indemSie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappecontrolandtestapp klicken, auf Hinzufügen zeigen und dann auf Neues Projekt... klicken.
Wählen Sie im Bereich Projekttypen im Knoten Visual C++ die Option CLR aus. Wählen Sie dann im Bereich Von Visual Studio installierte Vorlagen die Option Windows Forms-Anwendung aus.
Geben Sie einen Namen für das Projekt ein, z. B. testapp.
Stellen Sie sicher, dass in der Dropdownliste Projektmappe anstelle der Standardeinstellung Neue Projektmappe erstellen die Option Hinzufügen ausgewählt ist, und klicken Sie dann auf OK.
Der Windows Forms-Designer wird für das neue Projekt geöffnet und zeigt wie in dieser Abbildung ein neues Formular mit dem Namen Form1 an.
So fügen Sie der Toolbox ein Steuerelement hinzu
Fügen Sie dem Steuerelement einen Verweis hinzu. Wählen Sie im Menü Projekt die Option Verweise aus, oder klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt testapp, und klicken Sie dann auf Verweise.
Klicken Sie auf die Schaltfläche Neuen Verweis hinzufügen, klicken Sie auf die Registerkarte Projekte (Sie fügen einen Verweis auf ein anderes Projekt in dieser Projektmappe hinzu), und wählen Sie dann das Projekt clickcounter aus. Klicken Sie zweimal auf OK.
Wenn das Fenster Toolbox nicht angezeigt wird, wählen Sie im Menü Ansicht die Option Toolbox aus.
Klicken Sie mit der rechten Maustaste auf die Toolbox, und klicken Sie auf Elemente auswählen.
Klicken Sie auf die Schaltfläche Durchsuchen, und suchen Sie die Datei clickcounter.dll in der Verzeichnisstruktur der Projektmappe. Wählen Sie sie aus, und klicken Sie auf Öffnen.
Das clickcounter-Steuerelement wird in der Liste .NET Framework-Komponenten mit einem Häkchen angezeigt. Klicken Sie auf OK.
Das Steuerelement wird in der Toolbox mit dem Standardsymbol "Zahnrad" angezeigt.
Einfügen des Steuerelements in eine Anwendung
In diesem Schritt platzieren Sie zwei Instanzen des Steuerelements in einem Anwendungsformular und legen ihre Eigenschaften fest.
So platzieren Sie Instanzen eines Steuerelements in einem Formular
Ziehen Sie zwei Instanzen des clickcounter-Steuerelements aus der Toolbox. Platzieren Sie die beiden Instanzen so auf dem Formular, dass sie sich nicht überschneiden.
Wenn Sie das Formular verbreitern möchten, klicken Sie auf das Formular, um es auszuwählen, und ziehen Sie einen der Auswahlziehpunkte nach außen.
Wenn das Eigenschaftenfenster nicht angezeigt wird, wählen Sie im Menü Ansicht die Option Eigenschaften aus.
Die ClickAnywhere-Eigenschaft befindet sich im Abschnitt Sonstiges des Eigenschaftenfensters (wenn die Eigenschaften nach Kategorien geordnet sind).
Klicken Sie auf eine Instanz des clickcounter-Steuerelements im Formular, um sie auszuwählen, und legen Sie dann ihre ClickAnywhere-Eigenschaft auf true fest.
Belassen Sie die ClickAnywhere-Eigenschaft der anderen Instanz des clickcounter-Steuerelements bei false (dem Standardwert).
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt testapp, und wählen Sie Als Startprojekt festlegen aus.
Klicken Sie im Menü Erstellen auf Projektmappe neu erstellen.
Die beiden Projekte sollten ohne Fehler erstellt werden.
Ausführen der Anwendung
In diesem Schritt führen Sie die Anwendung aus und klicken auf die Steuerelemente, um sie zu testen.
So testen Sie die Anwendung
Wählen Sie im Menü Debuggen die Option Debuggen starten.
Das Formular wird mit den beiden sichtbaren Instanzen des Steuerelements angezeigt.
Führen Sie die Anwendung aus, und klicken Sie auf beide clickcounter-Steuerelemente:
Klicken Sie auf das Steuerelement, dessen ClickAnywhere-Eigenschaft auf true festgelegt ist.
Die Zahl in der Bezeichnung wird erhöht, wenn Sie auf eine beliebige Position innerhalb des Steuerelements klicken.
Klicken Sie auf das Steuerelement, dessen ClickAnywhere-Eigenschaft auf false festgelegt ist.
Die Zahl in der Bezeichnung wird nur erhöht, wenn Sie auf eine Position innerhalb der sichtbaren Bezeichnungsbegrenzung klicken. Die folgende Bildschirmabbildung zeigt, wie die Anwendung aussehen könnte, nachdem einige Male darauf geklickt wurde:
- Schließen Sie die Testanwendung, indem Sie auf das Schließfeld in der rechten oberen Ecke des Fensters Form1 klicken.
Nächste Schritte
Zurück:Erstellen einer Windows Forms-Anwendung mit .NET Framework (C++) | Weiter:Erstellen eines Spiels mit DirectX (C++)