TranslateAccelerator

Функція TranslateAccelerator обробляє клавіші виклику для команди меню. Функція переводить WM_KEYDOWN або WM_SYSKEYDOWN повідомлення повідомлення WM_COMMAND або WM_SYSCOMMAND (якщо запис для ключа в таблиці вказано прискорювач) і потім відправляє на WM_COMMAND або WM_SYSCOMMAND повідомлення безпосередньо до процедури відповідне вікно. TranslateAccelerator не повернутися до вікна процедура має обробити повідомлення.

 int TranslateAccelerator ( HWND  hWnd, / / ручка вікна призначенняHACCELhAccTable, / / ручка прискорювач таблиціLPMSGlpMsg / / адреса структури з повідомлення);
 

Параметри

hWnd
Ручки для вікна, чиї повідомлення повинні бути переведені.
hAccTable
Обробляти до таблиці прискорювача. Прискорювач таблиці повинні були завантажені на виклик функції LoadAccelerators або створено шляхом виклику функції CreateAcceleratorTable.
lpMsg
Вказівник на структуру MSG , яка містить відомості про повідомлення, отримані з закликом потік черга повідомлень за допомогою функції GetMessage або PeekMessage.

Повернення значень

Якщо функція завершено успішно, значення, що повертається, є ненульовим.

Якщо функцію не вдається, значення дорівнює нулю. Щоб отримати докладні відомості про помилку, зателефонуйте 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 повідомлення.

QuickInfo

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

Index