none
Fenster verlinken - Anfänger in Not RRS feed

  • Frage

  • 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, 
    auch in msdn komm ich mit der Anleitung net ganz klar, 
    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önnte

    und 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
    Dienstag, 30. Juni 2009 13:24

Antworten

  • Sowas ist eigentlich nicht vorgesegen, aber gehen sollte es mit:

     

    [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;
    }

     

     


    Jochen Kalmbach (MVP VC++)
    Dienstag, 30. Juni 2009 14:18

Alle Antworten

  • Sowas ist eigentlich nicht vorgesegen, aber gehen sollte es mit:

     

    [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;
    }

     

     


    Jochen Kalmbach (MVP VC++)
    Dienstag, 30. Juni 2009 14:18
  • Sowas ist eigentlich nicht vorgesegen, aber gehen sollte es mit:

     

    [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;
    
    }

     

     


    Jochen Kalmbach (MVP VC++)

    Ich probiere es gleich einmal aus. Danke schön erstmal
    Dienstag, 30. Juni 2009 15:18
  • Okay also das funktioniert nicht...da bekomme ich folgene Fehlermeldung:

    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 unzulssig

    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 ==========

    Dienstag, 30. Juni 2009 20:41
  • Du sollst das auch in die *vorhandene* main Funktion reinmachen und keine neue erfinden!!!!!
    Jochen Kalmbach (MVP VC++)
    Mittwoch, 1. Juli 2009 06:00
  • mann kann auch zuerst die Form verlinken:

    Formname .Show()

    und dazu

    Me.Hide()

    Verwenden...

    Mittwoch, 20. Oktober 2010 15:56