dialogfenster nur mit maus schliessen?



  • hallo leute!

    um jederzeit parameter im meinem programm verändern zu können habe ich ein nicht-modales dialogfenster erstellt. dabei möchte ich aber verhindern, dass es durch drücken der "enter" bzw. "esc" taste geschlossen wird, da anwender nach eingabe von zahlen aus gewohnheit doch gerne mal auf "enter" drücken. die zwei standardmässig vorhandene button habe ich entfernt, und auch versucht "OnClose" und "OnDestroy" zu überschreiben, leider ohne erfolg!
    sobald "enter" oder "esc" gedrückt werden ist das fenster weg!

    kann mir da jemand weiterhelfen??

    danke und grüsse
    markus



  • OnCancel und OnOK überschreiben und leeren. 🙂



  • danke für die schnelle antwort!

    das hatte ich auch schon ausprobiert (sorry, hätte ich erwähnen sollen ...), aber wenn ich "OnCancel" überschreibe (bzw. leere) kann ich das fenster gar nicht mehr schliessen. ich hätte es aber gerne so, dass übder den (unter xp) roten "x" button (rechts oben in jedem fenster) der dialog (als einzigste möglichkeit!) geschlossen werden kann.

    Kann ich in "OnCancel" zwischen 'klick-auf-x" und 'drücken-von-esc' unterscheiden?

    grüsse
    markus



  • Nein, aber du kannst "Drücken von Esc" verhindern. 😃

    Hmm, das geht entweder mit WM_KEYDOWN, WM_SYSKEYDOWN (oder so ähnlich) oder spätestens mit PreTranslateMessage. 🙂



  • ich habe "OnKeyDown" und "OnSysKeyDown" überschrieben, aber die werden (seltsamerweise?) nicht einmal aufgerufen!(??)

    mit "PreTranslateMessage" funktioniert es aber! kommt mir zwar etwas 'unelegant' bzw. 'uneffektiv' vor, da _alle_ nachrichten gefiltert werden, aber wenigstens gehts 😉

    danke für die schnelle hilfe!

    grüsse
    markus



  • Moin!

    Ist das vielleicht das gesuchte?

    Guckst du hier!



  • In der MSDN wurde das auch mal gefragt:

    http://msdn.microsoft.com/msdnmag/issues/0700/c/


Anmelden zum Antworten