PreTranslateMessage und Tastenabfrage
-
Hallo,
es handelt sich um eine SDI-Anwendung mit Unterdialogen.
Um in den Unterdialogen -Hotkeys- (z.B. F5 etc.) abzufangen wurde dafür ein entsprechendes Handle erzeugt und zugewiesen. In der PreTranslateMessage wurde folgendes implementiert:if (pMsg->message>= WM_KEYFIRST && pMsg->message<= WM_KEYLAST) { return::TranslateAccelerator(m_hWnd,(HACCEL__*)m_hAccel, pMsg); } return CDialog::PreTranslateMessage(pMsg);
In den Dialogen kann ich dann über die Hotkeys Funktionen aufrufen...eigentlich genau das was ich möchte.
ALLERDINGS funktioniert dann die Tab-Taste nicht mehr um die Steuerelemente zu wechseln...!
Wie kann ich das verhindern? Vielleicht kennt ja auch jemand eine -bessere- Routine für die Hotkeys in der PreTranslateMessage?
Schon mal Danke.
Gruss
S.
-
Muss die Abfrage nicht so lauten?
if (pMsg->message == WM_KEYDOWN)
Und dann brauchst du noch
UINT nKeyCode = pMsg->wParam; // virtual key code of the key pressed
Und Tab ist dann VK_TAB - weitere VK-Codes findest du in der MSDN.
-
Hallo estartu_de,
Danke für die Hilfe. Hat auf Deine Art und Weise funktioniert....!Also, dann nochmals vielen Dank und bis zum nächsten Problem
Gruss
S.