Поделиться через


WM_APPCOMMAND сообщение

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

#define WM_APPCOMMAND                   0x0319

Параметры

wParam

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

lParam

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

cmd  = GET_APPCOMMAND_LPARAM(lParam);

uDevice = GET_DEVICE_LPARAM(lParam);

dwKeys = GET_KEYSTATE_LPARAM(lParam);

Команда приложения — cmd, которая может иметь одно из следующих значений.

Значение Значение
APPCOMMAND_BASS_BOOST
20
Включите и выключите басовую толчок.
APPCOMMAND_BASS_DOWN
19
Уменьшите бас.
APPCOMMAND_BASS_UP
21
Увеличение баса.
APPCOMMAND_BROWSER_BACKWARD
1
Навигация назад.
APPCOMMAND_BROWSER_FAVORITES
6
Откройте избранное.
APPCOMMAND_BROWSER_FORWARD
2
Переход вперед.
APPCOMMAND_BROWSER_HOME
7
Перейдите домой.
APPCOMMAND_BROWSER_REFRESH
3
Страница обновления.
APPCOMMAND_BROWSER_SEARCH
5
Откройте поиск.
APPCOMMAND_BROWSER_STOP
4
Остановите скачивание.
APPCOMMAND_CLOSE
31
Закройте окно (не приложение).
APPCOMMAND_COPY
36
Скопируйте выделенный фрагмент.
APPCOMMAND_CORRECTION_LIST
45
Выводит список исправлений, когда слово неправильно определяется во время речевого ввода.
APPCOMMAND_CUT
37
Вырезать выделенный фрагмент.
APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE
43
Переключается между двумя режимами голосового ввода: диктовкой и командой и управлением (предоставление команд приложению или доступ к меню).
APPCOMMAND_FIND
28
Откройте диалоговое окно Поиск .
APPCOMMAND_FORWARD_MAIL
40
Пересылать сообщение электронной почты.
APPCOMMAND_HELP
27
Откройте диалоговое окно Справка .
APPCOMMAND_LAUNCH_APP1
17
Запустите App1.
APPCOMMAND_LAUNCH_APP2
18
Запустите App2.
APPCOMMAND_LAUNCH_MAIL
15
Откройте почту.
APPCOMMAND_LAUNCH_MEDIA_SELECT
16
Перейдите в режим выбора мультимедиа.
APPCOMMAND_MEDIA_CHANNEL_DOWN
52
Уменьшение значения канала, например для тв- или радиотюнера.
APPCOMMAND_MEDIA_CHANNEL_UP
51
Приумножение значения канала, например, для тв- или радиотюнера.
APPCOMMAND_MEDIA_FAST_FORWARD
49
Увеличение скорости потокового воспроизведения. Это можно реализовать разными способами, например с помощью фиксированной скорости или переключения с помощью ряда увеличивающихся скоростей.
APPCOMMAND_MEDIA_NEXTTRACK
11
Перейдите к следующему треку.
APPCOMMAND_MEDIA_PAUSE
47
Приостановка. Если она уже приостановлена, не предпринимать дальнейших действий. Это прямая команда PAUSE, которая не имеет состояния. Если есть отдельные кнопки Воспроизведения и Пауза, приложения должны выполнять действия с этой командой, а также APPCOMMAND_MEDIA_PLAY_PAUSE.
APPCOMMAND_MEDIA_PLAY
46
Начните играть на текущей позиции. Если она уже приостановлена, она будет возобновлена. Это прямая команда PLAY, которая не имеет состояния. Если есть дискретные кнопки Воспроизведения и Пауза , приложения должны выполнять действия с этой командой, а также APPCOMMAND_MEDIA_PLAY_PAUSE.
APPCOMMAND_MEDIA_PLAY_PAUSE
14
Воспроизведение или приостановка воспроизведения. При наличии отдельных кнопок воспроизведения и приостановки приложения должны выполнять действия с этой командой, а также APPCOMMAND_MEDIA_PLAY и APPCOMMAND_MEDIA_PAUSE.
APPCOMMAND_MEDIA_PREVIOUSTRACK
12
Перейдите к предыдущему треку.
APPCOMMAND_MEDIA_RECORD
48
Начните запись текущего потока.
APPCOMMAND_MEDIA_REWIND
50
Идти назад в потоке с более высокой скоростью. Это можно реализовать разными способами, например с помощью фиксированной скорости или переключения с помощью ряда увеличивающихся скоростей.
APPCOMMAND_MEDIA_STOP
13
Остановите воспроизведение.
APPCOMMAND_MIC_ON_OFF_TOGGLE
44
Переключите микрофон.
APPCOMMAND_MICROPHONE_VOLUME_DOWN
25
Уменьшение громкости микрофона.
APPCOMMAND_MICROPHONE_VOLUME_MUTE
24
Отключите микрофон.
APPCOMMAND_MICROPHONE_VOLUME_UP
26
Увеличьте громкость микрофона.
APPCOMMAND_NEW
29
Создайте новое окно.
APPCOMMAND_OPEN
30
Откройте окно.
APPCOMMAND_PASTE
38
Вставить
APPCOMMAND_PRINT
33
Печать текущего документа.
APPCOMMAND_REDO
35
Повторить последнее действие.
APPCOMMAND_REPLY_TO_MAIL
39
Ответ на сообщение электронной почты.
APPCOMMAND_SAVE
32
Сохраните текущий документ.
APPCOMMAND_SEND_MAIL
41
Отправка сообщения электронной почты.
APPCOMMAND_SPELL_CHECK
42
Инициируйте проверка заклинания.
APPCOMMAND_TREBLE_DOWN
22
Уменьшите значение втрое.
APPCOMMAND_TREBLE_UP
23
Увеличьте значение втрое.
APPCOMMAND_UNDO
34
Отменить последнее действие.
APPCOMMAND_VOLUME_DOWN
9
Уменьшите громкость.
APPCOMMAND_VOLUME_MUTE
8
Отключите громкость.
APPCOMMAND_VOLUME_UP
10
Увеличение тома.

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

Значение Значение
FAPPCOMMAND_KEY
0
Пользователь нажал клавишу.
FAPPCOMMAND_MOUSE
0x8000
Пользователь нажал кнопку мыши.
FAPPCOMMAND_OEM
0x1000
Событие было создано неопознанным аппаратным источником. Это может быть мышь или событие клавиатуры.

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

Значение Значение
MK_CONTROL
0x0008
Клавиша CTRL не работает.
MK_LBUTTON
0x0001
Левая кнопка мыши не работает.
MK_MBUTTON
0x0010
Средняя кнопка мыши не работает.
MK_RBUTTON
0x0002
Правая кнопка мыши не работает.
MK_SHIFT
0x0004
Клавиша SHIFT не работает.
MK_XBUTTON1
0x0020
Первая кнопка X не работает.
MK_XBUTTON2
0x0040
Вторая кнопка X не работает.

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

Если приложение обрабатывает это сообщение, оно должно вернуть значение TRUE. Дополнительные сведения об обработке возвращаемого значения см. в разделе Примечания.

Комментарии

DefWindowProc создает сообщение WM_APPCOMMAND при обработке сообщения WM_XBUTTONUP или WM_NCXBUTTONUP либо при вводе пользователем командного ключа приложения.

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

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

В отличие от других сообщений Windows, приложение должно возвращать значение TRUE из этого сообщения, если обрабатывает его. Это позволит программному обеспечению, которое имитирует это сообщение в системах Windows до Windows 2000, определить, обработала ли процедура окна сообщение или defWindowProc для его обработки.

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Winuser.h (включая Windows.h)

См. также раздел

Справочные материалы

DefWindowProc

GET_APPCOMMAND_LPARAM

GET_DEVICE_LPARAM

GET_KEYSTATE_LPARAM

ShellProc

WM_XBUTTONUP

WM_NCXBUTTONUP

Основные понятия

Ввод с помощью мыши