Öffnen eines Fensters nach Buttonbetätigung
-
Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ich nehme mal an, du wolltest, dass ich bei deinem Code einen Teil mit meinen Klassennamen etc. ersetze, aber es funktioniert irgendwie nicht (ob ich was ändere oder nicht). Was genau meinst du mit Hello_World_Klasse und _hello_world?
-
nun ja... du willst ja wenn ich dich richtig verstanden habe im Hauptfenster auf einen Button klicken, und dann soll ein neues Fenster angezeigt werden, in dem z.B "Hello World" steht....
dieses neue Fenster definierst du in einer Klasse die eine Unterklasse von Form ist.
Das macht aber Visual Studio ganz automatisch, wenn du, wie ichs oben beschrieben habe ein Element vom Typ Windows-Form zu deinem Projekt hinzufügst.
Beim Hinzufügen musst du einen Namen für das Element angeben -> dieser Name ist gleichzeitig dein Klassen-name.In dem Codeschnipsel wäre der Name des Elements "Hello_World_Klasse"
der Name "_hello_world" wiederum ist der Name der Instanz die von der Klasse erzeugt wird und damit frei wählbar.
ist genau das selbe, wie wenn du eine Variable definiert
int _value; //int ist der Typ, _value der Name Hello_World_Klasse _hello_world; // Hello_World_Klasse ist der Typ, _hello_world der Name _hello_world = gcnew Hello_World_Klasse(); // Aufruf des leeren Konstruktors _hello_world.show(); //bzw. showDialog()
-
Der Debugger sagt mir, er kenne die Klasse, die ich angelegt habe, nicht. Da liegt es nahe, zu schauen, ob es die Klasse wirklich gibt - und das tut es!
Vielleicht habe ich da etwas falsch verstanden. Du sagtest:
zitroneneis schrieb:
du machst einen rechtsklick auf dein Projekt und wählst -> Hinzufügen -> Neues Element->Windows-Form
[/cpp]Dieses Verzeichnis scheint es nicht zu geben, dh. nur Hinzufügen -> Klasse -> Windows Form. Sollte aber ebenfalls richtig sein.
Vielleicht bringen dich (und mich) die Fehlermeldungen des Debuggers weiter (HelloWorldDialog ist die Klasse, _hello_world habe ich belassen, da, wie du sagtest, man die Bezeichnung auslesen kann):
(87) error C2065: 'HelloWorldDialog': nichtdeklarierter Bezeichner
(87) error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner '_hello_world'
(87) error C2065: '_hello_world': nichtdeklarierter Bezeichner
(88) error C2065: '_hello_world': nichtdeklarierter Bezeichner
(88) error C2061: Syntaxfehler: Bezeichner 'HelloWorldDialog'
(89) error C2065: '_hello_world': nichtdeklarierter Bezeichner
(89) error C2228: Links von ".show" muss sich eine Klasse/Struktur/Union befinden.
-
Header includiert ? Grundlagenkapitel im Grundlagenbuch gelesen ?
-
Knuddlbaer schrieb:
Header includiert ? Grundlagenkapitel im Grundlagenbuch gelesen ?
Danke! Nun gibt es nur noch einen Fehler: Es kann die Headerdatei nicht finden. Wie mache ich das?
Was ich geschrieben habe:
#include <HelloWorldDialog.h>
Richtig so?
Nebenbemerkung:
Ich bin ein Hilfloser Anfänger was MFC anbelangt. Mit allgemeiner C++-Programmierung bin ich grad mittendrin. Alles, was ich will, ist mir einen einfachsten Einblick ins dialogfeld- und buttonbasierte Programmieren zu gewähren, habt also geduld mit mir
-
Versuch mal
#include "HelloWorldDialog.h"
Der Compiler sucht (soweit ich mich entsinne) an verschiedenen Orten bei <> und "".
-
"HelloWorldDialog.h": No such file or directory
-
Mr. Fossey schrieb:
"HelloWorldDialog.h": No such file or directory
ich hab einfach ne Klasse hinzugefügt windows form
dann oben
#include "Form2.h"[cpp] private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { Form2 f2; f2.ShowDialog(); } };[/cpp]
ging
-
Ich weiss nicht genau, woran es vorher lag, aber jetzt funktioniert es plötzlich
Danke vielmals an alle, die sich die Zeit genommen haben, hier einen Beitrag zu schreiben!