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


сообщение 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
Запустите Приложение1.
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
XBUTTON1 вниз.
MK_XBUTTON2
0x0040
XBUTTON2 вниз.

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

Если приложение обрабатывает это сообщение, оно должно возвращать 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 Профессиональный [только классические приложения]
Минимальный поддерживаемый сервер
Windows 2000 Server [только классические приложения]
Заголовок
Winuser.h (включая Windows.h)

См. также

Справочник

DefWindowProc

GET_APPCOMMAND_LPARAM

GET_DEVICE_LPARAM

GET_KEYSTATE_LPARAM

ShellProc

WM_XBUTTONUP

WM_NCXBUTTONUP

концептуальные

ввод мыши