Функція TranslateAccelerator обробляє клавіші виклику для команди меню. Функція переводить WM_KEYDOWN або WM_SYSKEYDOWN повідомлення повідомлення WM_COMMAND або WM_SYSCOMMAND (якщо запис для ключа в таблиці вказано прискорювач) і потім відправляє на WM_COMMAND або WM_SYSCOMMAND повідомлення безпосередньо до процедури відповідне вікно. TranslateAccelerator не повернутися до вікна процедура має обробити повідомлення.
int TranslateAccelerator ( HWND hWnd, / / ручка вікна призначенняHACCELhAccTable, / / ручка прискорювач таблиціLPMSGlpMsg / / адреса структури з повідомлення);
Якщо функція завершено успішно, значення, що повертається, є ненульовим.
Якщо функцію не вдається, значення дорівнює нулю. Щоб отримати докладні відомості про помилку, зателефонуйте GetLastError.
Диференціювати повідомлення, що ця функція відправляє від повідомлень, відправлених в меню або елементи керування, вищого порядку слово параметра wParam WM_COMMAND або WM_SYSCOMMAND повідомлення містить значення 1.
Прискорювач сполучення клавіш використовуються для меню ' вікно ' виберіть команду ' елементи перетворюються на WM_SYSCOMMAND повідомлень; всі інші прискорювач сполучень клавіш перетворюються на WM_COMMAND повідомлень.
Коли TranslateAccelerator повертається, перекладається ненульове значення а повідомлення, застосунок не повинні використовувати функцію TranslateMessage обробити повідомлення знову.
Корисну можливість потрібно не відповідають команди меню.
Якщо прискорювач команда відповідає елемент меню, застосування надсилається повідомлення WM_INITMENU і WM_INITMENUPOPUP , як, якщо користувач намагаються відкрити меню. Однак, ці повідомлення не надіслано якщо існує будь-якої з нижченаведених умов.:
Якщо вказаний вікно активного вікна і жодне вікно не має фокус вводу, (що зазвичай у випадку якщо вікно згорнуто), TranslateAccelerator переводить WM_SYSKEYUP та WM_SYSKEYDOWN повідомлення, замість того, щоб повідомлення WM_KEYUP та WM_KEYDOWN.
Якщо прискорювач-клавіш відбувається, що відповідає елемент меню згорнуте вікно, яке володіє меню, TranslateAccelerator не відправити WM_COMMAND повідомлення. Однак, якщо прискорювач-клавіш відбувається, що не відповідає жодному з пунктів у меню у вікні або в меню вікно , функція посилає повідомлення WM_COMMAND, навіть якщо вікно згорнуто.
Windows CE: Всі прискорювач ключових повідомлень перетворюються на WM_COMMAND повідомлень; Windows CE не підтримує WM_SYSCOMMAND повідомлення.
nbsp; Windows &NT: вимагає 3.1 або пізнішої версії.
Windows:Вимагає Windows 95 або пізнішої версії.
Windows CE:Потрібна Версія 1.0 або пізнішу версію.
Заголовка:Оголошена в winuser.h.
Імпортувати бібліотеки:Використання user32.lib.
Юнікод:Реалізований у вигляді Юнікод і ANSI версії на Windows NT.
Огляд прискорювачів клавіатури, клавіатури виклику функції, CreateAcceleratorTable, GetMessage, LoadAccelerators, MSG, PeekMessage, SetCapture, TranslateMessage, WM_COMMAND, WM_INITMENU, WM_INITMENUPOPUP, WM_KEYDOWN, WM_SYSKEYDOWN, WM_SYSCOMMAND