Problem bei Dialoganwendung und Adminrechten



  • Ich habe hier als Hauptfenster eine Dialoganwendung, diese Dialoganwendung öffnet einen anderen Dialog per DialogBox(...). Wenn ich diesen Dialog nun mit der minimze Taste minimiere so verkleinert er sich in die linke untere Ecke des Desktops und der Hauptdialog bleibt geöffnet auf dem Desktop. Damit der Hauptdialog nun auch minimiert wird, fange ich den Event WM_SIZE im Childdialog ab und minimiere von dort per ShowWindow(..) den Hauptdialog. Der sitzt dann unten in der Taskleite und macht einen Restore auf sich selbst und auf den Childdialog, wenn ich ihn anklicke.

    So jetzt das seltsame, wenn ich meine Anwendung im Administratomodus ausführe (und das muss ich), kann ich beide Dialoge zwar minimieren, aber es passiert nichts, wenn ich auf die minimierte Anwendung in der Taskleiste klicke. Die beiden Dialoge lassn sich nicht Restoren und ich muss warten, bis sich der Childdialog von alleine schliesst, wenn er mit seiner Tätigkeit durch ist. Was mache ich falsch und wie mache ich es richtig?

    Klar ich könnte CreateDialog(...) benutzen um den Childdialog zu starten, aber ich möchte verhindern, daß der Hauptdialog bedienbar ist, wenn der Childdialog geöffnet ist, also was muss ich tun?


  • Mod

    Fang doch einfacher den WM_SYSCOMMAND für den Minimize ab und sende diese Nachricht an den Main Dialog. Dieser müsste dann beide Fenster minimieren, wie es auch Windowstaste+D macht.



  • Hmm das bekomme ich so nicht hin. Welcher Event wird denn ausgelöst, wenn ich auf die minimierte Anwendung in der Taskleiste klicke, vieleicht kann ich an diesem Punkt ansetzten?


  • Mod

    .Helmut schrieb:

    Hmm das bekomme ich so nicht hin. Welcher Event wird denn ausgelöst, wenn ich auf die minimierte Anwendung in der Taskleiste klicke, vieleicht kann ich an diesem Punkt ansetzten?

    Was bekommst Du nicht hin?

    Lies mal die Doku zu WM_SYSCOMMAND!
    http://msdn.microsoft.com/en-us/library/ms646360(VS.85).aspx

    SC_MAXIMIZE
    Maximizes the window.
    SC_MINIMIZE
    Minimizes the window.



  • Naja ich schicke

    PostMessage(hMainWnd, WM_SYSCOMMAND, SC_MINIMIZE, 0);
    

    und nix passiert. Muss ich im Eventhandler des Hauptdialogs dann noch was machen, ich dachte das geht automatisch?


Anmelden zum Antworten