MDI-SubMenu per WM_CREATE aufrufen und per WM_CLOSE "zerstören"



  • bisher habe ich ein MDI-SubMenu immer bei WM_CREATE aufgerufen und bei WM_CLOSE "zerstört". Gibt es da effektivere Varianten?



  • Was verstehst du unter aufrufen? Das Menü laden und / oder setzen?
    Ich mache es normalerweise so (C++), dass ich je eine Klasse für verschiedene MDI-Child-Typen habe. Ein statischer Member dieser Klassen ist jeweils die Menuresource.

    Beim Registrieren der Fensterklasse wird auch dieses Menu geladen und beim Zerstören des Hauptfensters wird an alle Child-Klassen eine statische Cleanup-Methode aufgerufen, die, wenn es erforderlich ist, den Speicher ihres jeweiligen Menus wieder freigibt.

    Das Menu im Hauptfenster setzen kann man nach Erhalten der Nachricht WM_MDIACTIVATE.

    Aber ob das jetzt der Königsweg ist, weiß ich auch nicht - ich bin aber damit zufrieden.
    Denkbar wäre eine gemeinsame Basisklasse für die Childs, die vieles automatisch erledigen könnte. Da ich aber selten mehr als vier oder fünf verschiedene Child-Typen in einem Programm habe, ist der Aufwand überschaubar.


Anmelden zum Antworten