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.


Anmelden zum Antworten