LoadAccelerators ne permet que d'initialiser une structure.
Cette structure est utilisee par la suite par la fonction TranslateAccelerator. Celle ci permet de convertir un message WM_KEYDOWN ou WM_SYSKEYDOWN en WM_COMMAND et l'envoi directement a la fenetre.
Concretement, ca te transforme un CTRL+S en commande 'fichier->Enregistrer', comme ci tu avait clique dans le menu.
Ca marche bien quand tu programmes directement sans passer par les wizards.
Exemple de code correspondant a la boucle des messages et la fin de la fonction WinMain():
hAccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDACCELERATOR));
if (hAccel == NULL)
MessageBox(NULL, "hAccel == NULL", "TEST", MB_OK);
while( GetMessage( &msg, NULL, 0, 0 ) ) {
if (!TranslateAccelerator(msg.hwnd, hAccel, &msg)) {
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
return msg.wParam;
Si tu as plus de questions, n'hesite pas a me mailer.