Dialog - Accerlator-HotKeys funzen net!!!
-
Hi nochmals zusammen!
In meinem Proggy habe ich Accerlators eingebaut!
Das heisst, die Funktion OnFileNew wird aufgerufen, wenn CTRL+N gedrückt wird!
Also hab ich den Key CTRL+N hinzugefügt!Nur, wenn ich im Proggy dann CTRL+N drücke, passiert nix! Der PC gibt nur ein kurzes *ping* aus. das wars!
Kann mir einer mal erklären, warum das net geht??
-
Ich nehme mal an, dass es sich um eine Dialoganwendung handelt, denn ansonsten sollte das problemlos funktionieren.
Damit es bei einer Dialoganwendung auch funktioniert, sind drei Schritte notwendig:
1. Der Dialogklasse ein Member hinzufügen:
HANDLE m_hAccel;
2. In OnInitDialog einfügen:
m_hAccel = ::LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(ACC_RES_ID));
Dabei für ACC_RES_ID die Resource-ID Deines Accelerators eintragen.
3. Mit dem ClassWizard der Dialogklasse die PreTranslateMessage-Funktion hinzufügen, und darin:
if (pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST) { return ::TranslateAccelerator(m_hWnd, (HACCEL__ *)m_hAccel, pMsg); } return CDialog::PreTranslateMessage(pMsg);
-
Danke für deine HIlfe!!!
Es klappt! Juchuuuu!!!!