Чтобы обработать ускорителей, цикл обработки сообщений приложения (или потока) должен содержать вызов функции TranslateAccelerator . TranslateAccelerator сравнивает нажатия клавиш в таблице сочетаний клавиш и, если соответствие найдено, переводит нажатия клавиш в сообщения WM_COMMAND (или WM_SYSCOMMAND). Функция затем посылает сообщение процедуре окна. Параметры функции TranslateAccelerator включают дескриптор для окна, который должен получить сообщения WM_COMMAND, дескриптор в таблице сочетаний клавиш, используемое для перевода ускорителей и указатель на структуру MSG , содержащую сообщение из очереди. В следующем примере показано вызываемой TranslateAccelerator из цикла обработки сообщений.
при этом (GetMessage (amp; msg, NULL (HWND), 0, 0)) {/ / проверка для сочетания клавиш.
Если (!.TranslateAccelerator (hwndMain, / / обработать для получения окна haccel, / / обработать таблицу сочетаний клавиш активной и msg)) / / адрес из сообщения данных {}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}