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_XBUTTONUPWM_NCXBUTTONUP 消息时,或者当用户键入应用程序命令键时,会生成 WM_APPCOMMAND 消息。

如果子窗口不处理此消息,而是调用 DefWindowProc,则 DefWindowProc 会将消息发送到其父窗口。 如果最上层窗口不处理此消息,而是调用 DefWindowProc, 则 DefWindowProc 将调用挂钩代码等于 HSHELL_APPCOMMAND 的 shell 挂钩。

若要获取光标的坐标(如果消息是通过鼠标单击生成的),应用程序可以调用 GetMessagePos。 应用程序可以通过检查 lParam 是否包含 FAPPCOMMAND_MOUSE 来测试消息是否由鼠标生成。

与其他窗口消息不同,如果应用程序处理此消息,则应从此消息返回 TRUE。 这样做将允许在早于 Windows 2000 的 Windows 系统上模拟此消息的软件确定窗口过程是处理该消息还是调用 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

概念性

鼠标输入