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.