Ereignisse werden nicht ausgelöst



  • Ich will in ein Fenster mit Direct3D rendern. Dafür habe ich eine SDI Anwendung erstellt und FormView als Grundlage ausgewählt. Dann habe ich das ganze Feld mit einer Static Control ausgefüllt in die ich jetzt mit Direct3D hineinrendere. Das funktioniert auch wunderbar.

    Das Problem ist jetzt, wenn ich für das Dialogfeld Ereignisse wie Click oder Keydown festlege, dann werden die nicht ausgelöst. Ich nehme an, weil das Static Control die ganze Zeit markiert ist und die Ereignisse so nur an dieses gesendet werden.
    Verwunderlich ist aber, dass Keydown nicht funktioniert, obwohl man dieses Ereignis für das Static Control gar nicht auswählen kann (im Ressourceneditor).

    Auch, wenn ich das Click Ereignis für das Static Control festlege wird es nicht ausgelöst. Ich habe gelesen, dass es irgendetwas mit SS_NOTIFY zu tun hat. Ich weiß aber nicht wie ich das dem dem static Control zuweisen soll.

    Edit: Ok das mit dem clicken funktioniert, wenn ich Benachrichtigen im Designer einschalte. Nur Keydown funktioniert immer noch nicht.


  • Mod

    Ist logisch. Denn ein Static Control könntenur Tastatureingaben bekommen, wenn es auch den Focus hat.

    Aber ein Static Control nimmt sich z.B. nicht den Focus bei einem Mausklick.

    Du müsstest als SetFocus ausführen. z.B. auch bei der entsprechenden Klick-Benachrichtigung.



  • soweit ich mich recht erinner nehmen statics keine commands an - maximal klicks mit diesem notify



  • Okay aber warum wird das KeyDown Ereignis für das Dialogfeld nicht ausgelöst, wenn ich eine Taste drücke? Wenn der Dialog im Vordergrund und angeklickt ist müsste er doch den Fokus haben.


  • Mod

    Wenn Du irgendein Control mit WS_ATBSTOP auf dieser Seite noch hast, dann bekommt das den Fokus!



  • Das ganze handelt sich um ein CFormView dessen einziges Steuerelement dieses statische ist. Dem ganzen wurde ja auch noch durch den Assistenten automatisch ein Menü, eine Statusleiste und eine Toolbar hinzugefügt. Kann das auch den Fokus haben?

    Ich habe in der OnInitialUpdate() Funktion in der von CFormView abgeleiteten Klasse auch ein this->SetFocus() eingefügt. Das hat auch nichts gebracht. Was mir noch aufgefallen ist, dass wenn ich eine Taste Drücke, dass es dann einen Ton gibt. Also so einen Windows Warn Ton. Also nicht diesen ganz schlimmen sondern nur so ein "Ding". Hilft das irgendwie?


Anmelden zum Antworten