Mit Accelerator (Shortcuts) geht Tab nicht mehr



  • Hi!

    Ich habe in meine Anwendung den folgenden Code eingebaut, damit die Shortcuts auch in einer Dialog-Anwendung funktionieren:

    BOOL CtestDlg::PreTranslateMessage(MSG* pMsg) 
    { 
    	if (pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST) { 
    		return ::TranslateAccelerator(m_hWnd, (HACCEL__ *)m_hAccel, pMsg); 
    	} 
    	return CDialog::PreTranslateMessage(pMsg); 
    }
    

    Das funktioniert ja auch wunderbar, aber nun geht halt das "Weitertabben" (was für ein Wort 😃 ) nicht mehr...
    Wäre cool, wenn das wieder gehen würde...



  • schau mal ob sich pMsg->wParam ändert, wenn du unterschiedliche Tasten drückst, falls ja setzt du

    [cpp]
    BOOL CtestDlg::PreTranslateMessage(MSG* pMsg)
    {
        if (pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST && pMsg->wParam != VK_TAB) {
            return ::TranslateAccelerator(m_hWnd, (HACCEL__ *)m_hAccel, pMsg);
        }
        return CDialog::PreTranslateMessage(pMsg);
    }
    [/cpp]
    

    ein.

    und drück die DAumen, dass es geht 😃



  • Juhu, es geht! Danke, danke, danke! 😃



  • Ich habe ein MDI mit einer DockBar, welche ein CDialog anzeigt. Dieser Dialog hatte die Shortcuts gefressen!

    Deine Lösung ein wenig geändert:

    BOOL CDlgBasisdaten::PreTranslateMessage(MSG* pMsg) 
    {
    	if (pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST && pMsg->wParam != VK_TAB) {
    		::AfxGetMainWnd()->PreTranslateMessage(pMsg);
    	}
    	return CDialog::PreTranslateMessage(pMsg);
    }
    

    thx.


Anmelden zum Antworten