HACCEL LoadAccelerators (HINSTANCE hInst, LPCTSTR lpszTableName)
Параметры:
hInst - хэндл приложения, в которое загружается растровое изображение;
lpszTableName - указатель на строку с нулевым символом в конце, которая содержит имя загружаемой.
Возвращаемое значение: при успешном выполнении - хендл загруженной таблицы оперативных клавиш, иначе - NULL.
Каждое нажатие акселераторной комбинации должно генерировать сообщение WM_COMMAND. Для этого акселераторы и создавались. Поэтому, даже после загрузки таблицы в память программа не сможет на них правильно реагировать, если мы не будем использовать функцию TranslateAccelerator (), которая преобразует сообщения от клавиатуры в сообщения WM_COMMAND. Описание этой функции:
intTranslateAccelerator (HWNDhWnd, HACCELhAccTable, LPMSGlpMsg)
Параметры:
hWnd - хэндл окна с функцией обработки сообщений (WndProc), которая должна принимать преобразованные сообщения;
hAccTable - хэндл таблицы оперативных клавиш.
lpMsg - указатель на структуру сообщения, которая содержит данные сообщения, полученные при вызове функции GetMessage ().
Возвращаемое значение: при успешном выполнении - ненулевое значение, если нажата акселераторная комбинация, иначе - нуль.
Поэтому, с учетом вызова этой функции цикл обработки сообщений должен выглядеть следующим образом:
while (GetMessage (&msg, NULL, 0, 0))
{
if (! Accel ||! TranslateAccelerator (hWnd,hAcc,&msg);
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
}