Уведомление WM_APPCOMMAND 


Сообщение WM_APPCOMMAND  уведомляет окно о том, что пользователь создал командное событие прикладной программы, например, щелкая по командной кнопке приложения, используя мышь или нажимая на клавиатуре клавишу управления приложением.

Синтаксис

WM_APPCOMMAND
    WPARAM wParam
    LPARAM lParam;

Параметры

 wParam

Дескриптор окна, где пользователь щелкнул кнопкой мыши или нажал клавишу. Это может быть дочерним окном окна, получающего сообщение. Дополнительную информацию об обработке этого сообщения, см. раздел Замечаний.

lParam

Используйте нижеследующий код, чтобы получить информацию, содержащуюся в параметре lParam .

cmd  = GET_APPCOMMAND_LPARAM(lParam);

uDevice = GET_DEVICE_LPARAM(lParam);

dwKeys = GET_KEYSTATE_LPARAM(lParam);
 

Где cmd обозначает команду приложения. Этим параметром может быть одно из нижеследующих значений.

Значение Предназначение
APPCOMMAND_BASS_BOOST Переключает подъем частотной характеристики в области НЧ в положение вкл. и выкл. 
APPCOMMAND_BASS_DOWN Уменьшает нижние звуковые частоты. 
APPCOMMAND_BASS_UP Увеличивает нижние звуковые частоты. 
APPCOMMAND_BROWSER_BACKWARD Перемещает обратно. 
APPCOMMAND_BROWSER_FAVORITES Открывает "фаворитов". 
APPCOMMAND_BROWSER_FORWARD Перемещает вперед. 
APPCOMMAND_BROWSER_HOME Перемещает в начальное положение. 
APPCOMMAND_BROWSER_REFRESH Обновляет страницу. 
APPCOMMAND_BROWSER_SEARCH Открывает поиск. 
APPCOMMAND_BROWSER_STOP Останавливать загрузку. 
APPCOMMAND_CLOSE Windows XP: Закрывает окно (не приложение). 
APPCOMMAND_COPY Windows XP: Копирует выбранное. 
APPCOMMAND_CORRECTION_LIST Windows XP: Заводит список исправлений, когда слово неправильно идентифицировано в ходе речевого ввода. 
APPCOMMAND_CUT
Windows XP: Вырезает выделенный фрагмент. 
APPCOMMAND_DICTATE_OR_COMMAND

_CONTROL_TOGGLE

Windows XP: Переключает между двумя режимами ввода речи: диктовка и команда/управление (подающиеся команды приложению или меню доступа). 
APPCOMMAND_FIND Windows XP: Открывает диалоговое окно "Найти". 
APPCOMMAND_FORWARD_MAIL Windows XP: Отправляет почтовое сообщение. 
APPCOMMAND_HELP Windows XP: Открывает диалоговое окно "Справка". 
APPCOMMAND_LAUNCH_APP1 Запустить приложение1. 
APPCOMMAND_LAUNCH_APP2 Запустить приложение2. 
APPCOMMAND_LAUNCH_MAIL Открывает почту. 
APPCOMMAND_MEDIA_NEXTTRACK Переход на следующую дорожку. 
APPCOMMAND_MEDIA_PLAY_PAUSE Воспроизведение или пауза проигрывателя. 
APPCOMMAND_MEDIA_PREVIOUSTRACK Переход на предыдущую дорожку. 
APPCOMMAND_MEDIA_SELECT Переход в режим Media Select. 
APPCOMMAND_MEDIA_STOP Остановка проигрывателя. 
APPCOMMAND_MIC_ON_OFF_TOGGLE Windows XP: Переключение микрофона. 
APPCOMMAND_MICROPHONE_VOLUME_DOWN Windows XP: Увеличение  уровня громкости микрофона. 
APPCOMMAND_MICROPHONE_VOLUME_MUTE Windows XP: Отключение звука микрофона. 
APPCOMMAND_MICROPHONE_VOLUME_UP Windows XP: Уменьшение уровня громкости микрофона. 
APPCOMMAND_NEW Windows XP: Создание нового окна. 
APPCOMMAND_OPEN Windows XP: Открывает окно. 
APPCOMMAND_PASTE Windows XP: Вставка 
APPCOMMAND_PRINT Windows XP: Распечатка текущего документа. 
APPCOMMAND_REDO Windows XP: Восстановить последнее действие. 
APPCOMMAND_REPLY_TO_MAIL Windows XP: Ответить на почтовое сообщение. 
APPCOMMAND_SAVE Windows XP: Сохранить текущий документ. 
APPCOMMAND_SEND_MAIL Windows XP: Отправить почтовое сообщение. 
APPCOMMAND_SPELL_CHECK Windows XP: Инициализация проверки орфографии. 
APPCOMMAND_TREBLE_DOWN Уменьшить верхние звуковые частоты. 
APPCOMMAND_TREBLE_UP Увеличить верхние звуковые частоты. 
APPCOMMAND_UNDO Windows XP: Отменить последнее действие. 
APPCOMMAND_VOLUME_DOWN Понизить уровень звука. 
APPCOMMAND_VOLUME_MUTE Отключить звук. 
APPCOMMAND_VOLUME_UP Повысить уровень звука.

Где uDevice обозначает устройство ввода данных, которое генерировало событие ввода данных. Это может быть одно из нижеследующих значений.

Значение Предназначение
FAPPCOMMAND_KEY Пользователь нажал клавишу. 
FAPPCOMMAND_MOUSE Пользователь щелкнул кнопкой мыши. 
FAPPCOMMAND_OEM Неопознанный аппаратный источник генерировал это событие. Это может быть событие ввода от мыши или  клавиатуры.

Где dwKeys обозначает, находятся ли различные виртуальные клавиши в нажатом состоянии. Эта переменная может состоять из одного или нескольких ниже следующее значений.

Значение Предназначение
MK_CONTROL Нажата клавиша CTRL. 
MK_LBUTTON Нажата левая кнопка мыши. 
MK_MBUTTON Нажата средняя кнопка мыши. 
MK_RBUTTON Нажата правая кнопка мыши. 
MK_SHIFT Нажата клавиша SHIFT. 
MK_XBUTTON1 Нажата первая кнопка X. 
MK_XBUTTON2 Нажата вторая кнопка X.

 Возвращаемое значение

Если приложение обрабатывает это сообщение, оно возвращает значение ИСТИНА (TRUE). Подробную информацию об обработке возвращаемого значения, см. раздел Замечаний.

Замечания

 Функция DefWindowProc генерирует сообщение WM_APPCOMMAND тогда , когда она обрабатывает сообщение WM_XBUTTONUP или WM_NCXBUTTONUP, или когда пользователь нажимает командную клавишу приложения.

Если дочернее окно не обрабатывает это сообщение и вместо этого вызывает DefWindowProc, функция DefWindowProc отправит сообщение его родительскому окну. Если окно верхнего уровня не обрабатывает это сообщение и вместо этого вызывает DefWindowProc, функция DefWindowProc вызывает процедуру-ловушку (hook) оболочки с кодом hook - точки, равным HSHELL_APPCOMMAND.

 Чтобы получить координаты курсора, если сообщение было сгенерировано щелчком кнопки мыши, приложение может вызвать функцию  GetMessagePos. Приложение может проверить, было ли сообщение сгенерировано мышью, при помощи проверки, содержит ли параметр lParam флажок  FAPPCOMMAND_MOUSE.

В отличие от других сообщений окон, приложение должно возвратить значение ИСТИНА (TRUE), если оно обрабатывает это сообщение. Такое выполнение  даст возможность программе имитировать это сообщение в системе Microsoft ® Windows ® быстрее, чем в  Windows 2000, чтобы определить, обработала ли оконная процедура сообщение или вызвала функцию DefWindowProc, чтобы обработать его.

Смотри также

Обзор Ввод данных с клавиатуры, DefWindowProc GET_APPCOMMAND_LPARAM, GET_DEVICE_LPARAM, GET_KEYSTATE_LPARAM, ShellProc, WM_XBUTTONUP, WM_NCXBUTTONUP

Размещение и совместимость WM_APPCOMMAND

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Нет

Windows Me

Да

Windows 98

Нет

Windows 95

Нет

Используемая библиотека

Нет

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz