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_XBUTTONUP 或 WM_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 [仅限桌面应用] |
标头 |
|