2. Fenster innerhalb einer Funktion/Klasse erstellen



  • Moin!

    Wäre es möglich, ein 2. Fenster in einer eigenen Funktion/Klasse zu definieren und aufzurufen?

    Hintergrund ist der, ich möchte das Programm übersichtlich, modular und leicht erweitern können.

    Außerdem stellt sich die Frage, ob dann möglich wäre, dass es Kommunikation zwischen diesen Fenster möglich ist? (Windows Message?)

    Vielen Dank und Grüße


  • Mod

    Das ist doch der Sinn von Fensterklassen...
    Ich verstehe Deine Frage nicht.



  • Hier mal eine Idee wie es gemeint war:

    HWND hwnd = CreateWindow (szName, "Erstes Fenster",
                                 WS_BORDER | WS_SYSMENU | WS_MINIMIZEBOX,
                                 380,               // Erster Wert: Abstand des Fensters zum linken Bildschirmrand.
                                 200,               // Zweiter Wert: Abstand des Fensters zum oberen Bildschirmrand.
                                 490,               // Dritter Wert: Fensterbreite.
                                 120,               // Vierter Wert: Fensterhöhe.
                                 NULL,
                                 NULL,
                                 hI,
                                 NULL);
    
                                 ShowWindow (hwnd, iCmdShow);
                                 UpdateWindow (hwnd);
    
        hwnd2 = CreateWindow (szName, "Zweites Fenster",
                             WS_BORDER | WS_SYSMENU | WS_MINIMIZEBOX,
                             380,               // Erster Wert: Abstand des Fensters zum linken Bildschirmrand.
                             200,               // Zweiter Wert: Abstand des Fensters zum oberen Bildschirmrand.
                             490,               // Dritter Wert: Fensterbreite.
                             120,               // Vierter Wert: Fensterhöhe.
                             NULL,
                             NULL,
                             hI,
                             NULL);
    
                             ShowWindow (hwnd2, iCmdShow);
                             UpdateWindow (hwnd2);
    

    in zum Beispiel:

    void fenster1() {
    
    HWND hwnd = CreateWindow (szName, "Erstes Fenster",
                                 WS_BORDER | WS_SYSMENU | WS_MINIMIZEBOX,
                                 380,               // Erster Wert: Abstand des Fensters zum linken Bildschirmrand.
                                 200,               // Zweiter Wert: Abstand des Fensters zum oberen Bildschirmrand.
                                 490,               // Dritter Wert: Fensterbreite.
                                 120,               // Vierter Wert: Fensterhöhe.
                                 NULL,
                                 NULL,
                                 hI,
                                 NULL);
    
                                 ShowWindow (hwnd, iCmdShow);
                                 UpdateWindow (hwnd);
    
    }
    
    void fenster2() {
    
        hwnd2 = CreateWindow (szName, "Zweites Fenster",
                             WS_BORDER | WS_SYSMENU | WS_MINIMIZEBOX,
                             380,               // Erster Wert: Abstand des Fensters zum linken Bildschirmrand.
                             200,               // Zweiter Wert: Abstand des Fensters zum oberen Bildschirmrand.
                             490,               // Dritter Wert: Fensterbreite.
                             120,               // Vierter Wert: Fensterhöhe.
                             NULL,
                             NULL,
                             hI,
                             NULL);
    
                             ShowWindow (hwnd2, iCmdShow);
                             UpdateWindow (hwnd2);
    
    }
    


  • NoName123 schrieb:

    Wäre es möglich, ein 2. Fenster in einer eigenen Funktion/Klasse zu definieren und aufzurufen?

    Ich weiss zwar nicht was du damit genau meinst, aber die Antwort ist ziemlich sicher: ja.

    NoName123 schrieb:

    Außerdem stellt sich die Frage, ob dann möglich wäre, dass es Kommunikation zwischen diesen Fenster möglich ist? (Windows Message?)

    Ja, sicher geht das. Und wenn du wirklich meinst dass die Fenster mit einander kommunizieren sollen, dann sind Window-Messages auch so ziemlich die einzige Möglichkeit das umzusetzen.


Anmelden zum Antworten