Hotkeys....Focusproblem!
-
Hallo,
es handelt sich um eine SDI-Anwendung unter Visual Studio 6.0.
In diesem Programm werden Unterdialoge verwendet.
Um die Hotkeys entsprechend benutzen zu können wurde folgendes implementiert:Dialogklasse:
// Hotkeys implementieren HANDLE m_hAccel;
und in der OnInitDialog
// Hotkey - Handle zuweisen m_hAccel = ::LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDD_CONFIG_FRAME));
Ausserdem wurde die PreTranslateMessage folgendermaßen hinzugefügt:
if (pMsg->message>= WM_KEYFIRST && pMsg->message<= WM_KEYLAST) { return::TranslateAccelerator(m_hWnd,(HACCEL__*)m_hAccel, pMsg); } return CDialog::PreTranslateMessage(pMsg);
So weit so gut. Das ganze funktioniert auch so lange sich der Cursor nicht in einem Steuerelement befindet, d.h. so lange ein Steuerelement im Dialog nicht den Fokus hat.
Wie kann ich dennoch die Hotkeys nutzen, auch wenn ein Element den Fokus hat?
Wichtige Ergänzung:
OK, ich muss erklärenderweise noch etwas hinzufügen.
Die oben erwähnten Eintrage werden im Dialog1 (Hauptdialog) gemacht.
In diesem Hauptdialog werden Unterdialoge mit Parent->Dialog1 angezeigt. Diese Unterdialoge enthalten die Steuerelemente, welche bei Focus-Besitz nicht auf die Hotkeys reagieren....!
Da liegt wohl irgendwie das Problem....! Da diese Unterdialoge doch von Dialog1 abgeleitet sind und explizit mit SetParent(Dialog1) zugewiesen wurde sollte das doch funktionieren, oder?Vielen Dank für Eure Hilfe.
Gruss
S.
-
Vielleicht hilft Dir hier folgender MSDN Artikel: Q187988
Ein ähnliches Problem habe ich mit dem Artikel gelöst.