neues Formular einbinden

derhoeppi

Grünschnabel
Hallo
Ich bin mit C++ OO ein totaler Anfänger in der Schule habe ich schon mit Delphi gearbeitet, aber es unterscheidet sich doch ziemlich zu C++ OO, deshalb meine Frage.
Wo überall muss ich mein Form2 einbinden, damit ich sie aufrufen kann? Zweitens über welchen Befehl ruf ich mein Form2 auf (bisher versuch ich es mit Form2->Show(); ) - aber nicht so dass ich denke, dass das Formular zwei einfach falsche eingebunden wurde.
Kann das jemand bestätigen bzw. mir verraten wo ich es einbinden muss und wie ich es über das Ereignis click aufrufen kann.
 

derhoeppi

Grünschnabel
Hat hier noch niemand ein zweites Formular gebraucht für sein Programm?
Wie gesagt in Delphi war es kein Thema, aber in Visual C++ hab ich leider keine Ahnung.
 

langer1801

Erfahrenes Mitglied
Hallo,
so ganz verstehe ich dein Problem nicht. Erkläre doch bitte, was du für Forms meinst. So wie ich das interpretiere, arbeitest du mit Windows-Forms. Das ist aber Teil von .net oder C#. In C++ nutzt man eigentlich Dialog-Ressourcen. Oder habe ich dich falsch verstanden?

Mfg

langer
 

derhoeppi

Grünschnabel
Ja es handelt sich um .net. Ich möchte eine neue Windows Form anlegen, also da wo ich neue Buttons und Labels und so draufziehen kann.
 

MCoder

Erfahrenes Mitglied
langer1801 hat gesagt.:
Das ist aber Teil von .net oder C#. In C++ nutzt man eigentlich Dialog-Ressourcen.
Nicht unbedingt. Man kann die .NET-Klassenbibliothek auch mir C++ benutzen (sog. "Managed C++"). Ist aber meiner Meinung nach ein ziemlicher Krampf ;)

@derhoeppi
Der Aufruf der Form hängt davon ab, wie du es verwenden willst. Ist das das Hauptfenster der Applikation, muss folgender Code verwendet werden:
C++:
System::Windows::Forms::Application::Run(new MyForm);
Bei Dialogen innerhalb der Applikation, sieht's so aus:
C++:
MyForm *pForm = new MyForm();
pForm->ShowDialog();
Wo du den Code einbauen musst, hängt davon ab, an welcher Stelle die Form aufgerufen werden soll. Da du ein Ckick-Ereignis erwähnst, denke ich, dass es mittels eines Buttons auf einer anderen Form geöffnet werden soll. Das entsprechende Click-Methode sollte sich einfach mit dem Ressourceneditor einfach erstellen lassen.
BTW: Mit welcher Entwicklungsumgebung (Version) programmierst du eigentlich?

Gruß
MCoder
 

derhoeppi

Grünschnabel
Wir haben von der Berufsschule aus Mircosoft Visual Sudio 2003 bekommen.
Ja ich habe vor per Mausclick eine 2 Form zu öffnen.
Man könnte auch alles in Form 1 machen nur wird es da ziemlich unübersichtlich wenn man ständig die Objekte auf unsichtbar verstellt - es werden doch einige Objekte.
 

MCoder

Erfahrenes Mitglied
Wenn du im Formulareditor des Forms auf den betreffenden Button doppelt klickst ,müsste schon automatisch ein Methodenrumpf erzeugt werden, in welchen du einfach den Code zum Aufrufen der Form einfügst.

Gruß
MCoder
 

Antispy

Mitglied
Hallo Zusammen,
ich versuche gerade ebenfalls ein 2. windowsform in meiner Hauptform aufzurufen, nur leider scheint mir dieses einfach nicht zu gelingen :(

Meine Hauptform, in der ich bin ist Form1.h und ich versuche dort die info.h aufzurufen.
Die info.h habe ich bereits in der Form1.cpp und der Form1.h eingebunden (#include "info.h")
aber nun stellt sich mir die Frage, wie ich diese aufrufe...
Über die oben angegeben Vorschläge klappt das bei mir leider nicht :(
Der Aufruf erfolgt bei mir ebenfalls über einen Button.

Vielen Dank für eure Antworten!!

Liebe Grüße,
Antispy

Ps: Ich nutze Windows Visual Studio 2005 Express und schreibe meine Software in C++
 

Antispy

Mitglied
kurz nach diesem EIntrag habe ich die passende Lösung bei Google gefunden :)
Hier die Lösung für diejenigen, die das gleiche Problem haben:

Code:
Form^ _neuesFenster = gcnew info;
_neuesFenster->Show();

Der Code wurde bei mir in der Funktion des Buttons im Hauptfenster eingefügt.
"_neuesFenster" ist das Objekt, womit ich die neue Form anspreche und "info" ist der Name des 2. Forms.

Ich hoffe, dass es richtig erklärt habe, ansonsten korrigiert mich bitte :)

Anschließend noch ein schönes Video, wo es sehr gut erklärt ist:
http://www.rb-softarticle.com/Form2.html