Child Window -> Frage zur Nachrichtenverarbeitung



  • Hallo.

    Da ich lange mit VB arbeitete bin ihc gewohnt für jede Kleinigkeit Main-Windows zu nehmen, da in VB keine msg-loops notwendig sind war das auch kein problem. Nun aber möchtse ich zum 1.mal ein programm mit mehreren fenstern und bin auf ein "Problem" gestoßen...

    Ich will ein Main-Window und ein Child-Window. Auf dem Child sind widerum 4-5 steuerelemente (also childs).

    Frage:

    1. Von Childs erzeugte Msgs werden an ihre parents geschickt. soweit so gut. aber, was wenn ein child selbst auf einem child liegt. also, der parent des buttons ein child-window ist?? Werden die MSGs dann zum Vater aller (also zum main-window) oder zum parent des buttons, also zum übergeordneten child geshcickt??



  • Immer nur das Parent, dessen Handle du bei der CreateWindow(Ex) Funktion verwendest wird vom Child benachrichtigt. (bitte korrigieren fals unrichtig)



  • Kann ein child denn eine nachrichtenVerarbeitungsschleife haben??



  • Jedes Fenster braucht eine Nachrichten-Verarbeitungs-Funktion - also auch jedes Child 😉



  • ja! nur, jmd. hatte mir im chat gesagt, dass man bei childs einen pointer zur wndProc des parent angibt. 😉 (deswegen habe ich gefragt)

    unun nun noch eine Frage um nicht ein neues thread zu eröffnen:

    KÖNNEN CHILD-FENSTER MENU'S HABEN??

    thx, im voraus, mfg th



  • ja! nur, jmd. hatte mir im chat gesagt, dass man bei childs einen pointer zur wndProc des parent angibt. (deswegen habe ich gefragt)

    Wenn du das Child-Fenster erstellt hast, kannst du dessen WindowProcedure-Funktion im Nachhinein durch eine beliebig Andere ersetzen. Wenn du es mit der WindowProcedure-Funktion des Parents ersetzt, dann kriegt diese Funktion logischerweise Benachrichtigungen vom Parent und vom Child.

    KÖNNEN CHILD-FENSTER MENU'S HABEN??

    Nein, können sie nicht (du sprichst doch über das Menü, das unter der Titelleiste eines Programms zu finden ist, oder?). Du müsstest das selber irgendwie programmieren (persönlich weiß ich aber nicht wie..).



  • Danke, vielmals...



  • Ich bin gerade vor kurzem auf eine Lösung gestoßen, wie man Menüs in einem Child-Fenster machen kann. Die Idee ist wie folgt:

    Du ladest ganz einfach ein Handle zu einem Menü ( LoadMenu(...) ).
    Daraus holst du irgendwie Informationen über die MenuItems (schau dir die Menü-Funktionen an).
    Danach erstellst du Buttons mit den Namen der MenuItems in einer Toolbar, Rebar oder in einem einfachen Fenster..
    Wenn der User auf einen Button klickt musst du ein Popup-Fenster erstellen, das das entsprechende Untermenü darstellt.
    Wenn man auf einen Button klickt, muss er eingedrückt erscheinen solange der User im Menü ist.

    So stell ich mir das vor. Ausprobiert hab ich's natürlich noch nicht, da es nicht so einfach ist und ich mit was Anderem beschäftigt bin...


Anmelden zum Antworten