Fenster verknüpfen - Anfängerproblem
-
Hi
Ich bin mir ziemlich sicher, dass es ein ähnliches Thema bereits gibt.
Ich habe davon nämlich auch schon einige seit 1 1/2 Tage gelesen,
doch leider haben Sie mir nicht geholfen, darum seid mir bitte nicht böse.Ich möchte gerne in C++ 2008 mit einem Button.Click in form1 das form1-Fenster schließen und das form2-Fenster öffnen.
Alles, was ich bisher herausgefunden habe ist, dass es wohl mit
this->close;
geschlossen weden könnteund man mit
ShowDialog usw. ein anderes Fenster öffnen kann.
Alles was ich auch sonst so gefunden habe, habe ich natürlich ausprobiert.
Aber ich habe ständig Fehlermeldungen.Ich gehe davon aus, dass man eine Klasse für die beiden Fenster machen muss oder ne headerdatei,
damit form2 überhaupt erkannt wird. Wie müsste das aussehen?
Ich weiß leider auch net welche Bilbliotheken und/oder Funktionen ich
einbauen muss, damit es klappt.Also in Kurzform:
Wie kann man form2 in form1 definieren?
Was muss ich tun bzw schreiben,
damit Befehle wie close und showDialog auch funktionieren
oder gibt es gar andere Befehle, die ich nehmen muss?Ich wäre über nette, hilfreiche Antworten sehr erfreut.
Ein fettes Danke an alle, die sich die Mühe machen mir zu helfen
-
Hier wurden schon einige Antworten gegeben.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-244445.html
-
theta schrieb:
Hier wurden schon einige Antworten gegeben.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-244445.htmlja ich weiß, aber wenn mir jemand antwortet dann, kann ich wenigstens zurückposten, was meine fehlermeldungen sind, deswegen habe ich einen eigenen tread gemacht...wäre net wenn also nicht nur links geantwortet wären^^
trotzdem danke
-
Das ist völlig ok. Ich möchte mit der Verlinkung nur vermeiden, dass jmd. eine Antwort gibt, die schon gegeben wurde.
Simon
-
theta schrieb:
Das ist völlig ok. Ich möchte mit der Verlinkung nur vermeiden, dass jmd. eine Antwort gibt, die schon gegeben wurde.
SimonOkay thx
-
Sheree schrieb:
ja ich weiß, aber wenn mir jemand antwortet dann, kann ich wenigstens zurückposten, was meine fehlermeldungen sind, deswegen habe ich einen eigenen tread gemacht...wäre net wenn also nicht nur links geantwortet wären^^
trotzdem dankeGenerell hilft man sich mit bestehenden Beiträgen. Zu Deiner Frage findet man massig Beiträge - sogar in der FAQ.
Dann verwendet man Codetags und Fehlermeldungen postet man gleich am Anfang mit (inkl. dem Codeausschnitt der die Fehler produziert).
-
Knuddlbaer schrieb:
Generell hilft man sich mit bestehenden Beiträgen. Zu Deiner Frage findet man massig Beiträge - sogar in der FAQ.
Dann verwendet man Codetags und Fehlermeldungen postet man gleich am Anfang mit (inkl. dem Codeausschnitt der die Fehler produziert).
Wie soll ich Fehlermeldungen posten, wenn ich nich mal weiß, was ich denn nun für Befehle nehmen soll. Bis jetzt hat keine Variante bei mir funktioniert.
Nehmen wir zum Beispiel diese Variante:
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Application::Run(gcnew Form1());// Öffne jetzt das Form2, wenn das Form1 geschlossen ist...
Application::Run(gcnew Form2());return 0;
}Dann kommt die Fehlermelung:
1>------ Erstellen gestartet: Projekt: hau drauf 3, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>stdafx.cpp
1>Kompilieren...
1>Form2.cpp
1>hau drauf 3.cpp
1>c:\dokumente und einstellungen\sheree\eigene dateien\visual studio 2008\projects\hau drauf 3\hau drauf 3\Form1.h(86) : error C3749: "System::STAThreadAttribute": Ein benutzerdefiniertes Attribut kann nicht innerhalb einer Funktion verwendet werden.
1> c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll: Siehe Deklaration von 'System::STAThreadAttribute'
1>c:\dokumente und einstellungen\sheree\eigene dateien\visual studio 2008\projects\hau drauf 3\hau drauf 3\Form1.h(88) : error C2601: 'main': Lokale Funktionsdefinitionen sind unzulässig
1>c:\dokumente und einstellungen\sheree\eigene dateien\visual studio 2008\projects\hau drauf 3\hau drauf 3\Form1.h(96) : error C2061: Syntaxfehler: Bezeichner 'Form2'
1>AssemblyInfo.cpp
1>Code wird generiert...
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Sheree\Eigene Dateien\Visual Studio 2008\Projects\hau drauf 3\hau drauf 3\Debug\BuildLog.htm" gespeichert.
1>hau drauf 3 - 3 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
-
nehmen wir das Beispiel aus den FAQ:
Form2^ XY = gcnew Form2();
XY->ShowDialog();dann kommt folgender Fehler:
1>c:\dokumente und einstellungen\sheree\eigene dateien\visual studio 2008\projects\hau drauf 3\hau drauf 3\Form1.h(91) : error C2562: 'haudrauf3::Form1::button1_Click': 'void'-Funktion gibt einen Wert zurück
1> c:\dokumente und einstellungen\sheree\eigene dateien\visual studio 2008\projects\hau drauf 3\hau drauf 3\Form1.h(85): Siehe Deklaration von 'haudrauf3::Form1::button1_Click'
-
muss man eigentlich #include "Form2.h" oder #include<Form2.h> schreiben?
-
Sheree schrieb:
muss man eigentlich #include "Form2.h" oder #include<Form2.h> schreiben?
http://www.imb-jena.de/~gmueller/kurse/c_c%2B%2B/c_includ.html
-
Bei einer VC++ Anwendung ist Form1 das Hauptfenster. Wenn Du das schließt, beendest Du die Anwendung.
Alternativ könntest Du Form1 minimieren und dann Form2 über ->ShowDialog() öffnen...
Was willst Du denn erreichen bzw. wozu muss Form1 geschlossen werden?
Gruß Solick