About Dialog



  • Deaktiviere einfach alle anderen Fenster mit EnableWindow.



  • Daran habe ich auch schon gedacht aber das Prob ist das edit Boxen dann grau werden und ich auch alle childs durchgehen müsste (mit enumchilds eigentlich kein problem), aber kennt nicht jemmand noch ne andere möglichkeit?



  • Aufruf des About-Childwin über eine Function

    Pseudocode:

    // bla bla
    WM_COMAND
    // bla bla
    ID_ABOUT_DIALOG
    // bla bla
    ShowAbout();
    // bla bla
    //....
    
    void ShowAbout()
    {
       //window class abändern
       // auch wndproc nach childproc
       // und registrieren
       // Anzeigen
       static bool ok_geklickt = false;
       while (!ok_geklickt) /* muck nichts */
    }
    
    LRESULT CALLBACK ChildProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    WM_CREATE
    // OK Button und so rein
    WM_COMAND
    //  OK Button geklickt?
        // Fenster schliesen, ok_geklickt = true;
    }
    


  • Evtl. über WM_WINDOWPOSCHANGING 🙄



  • Manchmal verstehe ich deine kurzpostings mit WM_...... etc. nicht, fleners.
    Hast du ein "Auto-Antwort-Programm" geschrieben.



  • Die_drei-??? schrieb:

    Manchmal verstehe ich deine kurzpostings mit WM_...... etc. nicht, fleners.
    Hast du ein "Auto-Antwort-Programm" geschrieben.

    Nein, war aber eben schon spät und ich wollte nicht zu viel Zeit damit verbringen.
    Gedacht hatte ich das so, dass man WM_WINDOWPOSCHANGING abfängt und dann das Ganze über hwndInsertAfter der WINDOWPOS-Struktur vielleicht verhindern könnte - weiß allerdings nicht, ob das auch so hinhaut 😉



  • Weiß ich auch nicht ob das hinhaut, müßte man testen, aber fine ich zu aufwendig. In eine Function packen sehe ich einfacher.



  • @flenders: Ne das kann nicht funktionieren da mein About Feld natürlich kleiner ist als Hauptfenster.

    @DevMicky das habe ich mir auch schon überlegt aber die childs haben alle ihre eigene WindowProcedure. Soll heißen wenn ich in ein edit Feld drücke erscheint da der Cursor und (was noch schlimmer ist) das Fenster wird neu gezeichnet was dafür sorgt da ich im schlimmsten Fall ein weißes Loch im About Window habe.



  • Merkst du nicht das das total bescheuert ist, was du da vorhast?



  • Nach einer alten Regel gibt es keine bescheuerten Fragen, es gibt nur dumme antworten. Nur weil bis jetzt noch niemand eine Lösung gefundet hat bedeutet das nicht das es keine gibt.

    Die radikalste Lösung ist natürlich einfach die Window Procedure komplett zu blockieren. Dann steht das Programm völlig still. Das Prob ist Aktion wie resize und repaint funktionieren dann nicht mehr. Wenn keiner mehr ne Lösung weiß werde ich es wohl dann mal so probieren ...


Anmelden zum Antworten