En C, dans le WinMain, on met
{
HANDLE hAccel;
....
hAccel = LoadAccelerators (hInstance, MAKEINTRESOURCE(ACCEL_ID)); // la ressource des accélérateurs
...
et dans la grande boucle des messages
// Message Loop
while(GetMessage(&msg, NULL, 0, 0))
{
if (! TranslateAccelerator(hWndMain, hAccel, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return msg.wParam;
}
// End WinMain
Dans le fichier RC, j'avais mis
//
// Accélérateurs
//
ACCEL_ID ACCELERATORS
BEGIN
"^O", ID_FILE_OPEN // CTRL + O
"^X", ID_EDIT_CUT // CTRL + X
"^C", ID_EDIT_COPY // CTRL + C
"^V", ID_EDIT_PASTE // CTRL + V
VK_DELETE, ID_EDIT_CUT, SHIFT, VIRTKEY // SHIFT + DEL
VK_INSERT, ID_EDIT_COPY, CONTROL, VIRTKEY // CTRL + INSER
VK_INSERT, ID_EDIT_PASTE, SHIFT, VIRTKEY // SHIFT + INSER
END
et des trucs comme cela dans la définition des menus
POPUP "&Edition"
{
MENUITEM "&Copie Ctrl+C (Ctrl+Inser)", ID_EDIT_COPY
MENUITEM "C&olle Ctrl+V (Shift+Inser)", ID_EDIT_PASTE
MENUITEM "Cou&pe Ctrl+X (Shift+Del)", ID_EDIT_CUT
MENUITEM SEPARATOR
etc...