与菜单一起使用的邮件

【勇芳软件工作室】汉化HomePreviousNext

Windows通过向拥有菜单的窗口的窗口过程发送消息来报告菜单相关活动。当用户选择菜单栏上的项目或单击鼠标右键显示快捷菜单时,Windows会发送一系列消息。

当用户激活菜单栏上的项目时,所有者窗口首先收到WM_SYSCOMMAND消息。该消息包括一个标志,指示用户是否通过使用键盘(SC_KEYMENU)或鼠标(SC_MOUSEMENU)来激活菜单。有关菜单的键盘界面的详细信息,请参阅键盘访问菜单.

接下来,在显示任何菜单之前,Windows会向窗口过程发送WM_INITMENU消息,以便应用程序可以在用户看到之前修改菜单。每个菜单激活时,Windows只会发送一次WM_INITMENU消息。

当用户指向打开子菜单的菜单项时,Windows会在显示子菜单之前发送所有者窗口WM_INITMENUPOPUP消息。此消息给应用程序在显示子菜单之前修改子菜单。

每次用户将突出显示从一个项目移动到另一个项目时,Windows会向菜单的所有者窗口的窗口过程发送WM_MENUSELECT消息。此消息标识当前选择的菜单项。许多应用程序在其主窗口的底部提供信息区域,并使用此消息显示有关所选菜单项的附加信息。

当用户从菜单中选择一个命令项时,Windows会向窗口过程发送WM_COMMAND消息。WM_COMMAND消息的【wParam中】参数的低位字包含所选项目的标识符。窗口过程应该检查标识符并相应地处理消息。

并非所有菜单都可通过窗口的菜单栏访问。当用户在特定位置点击鼠标右键时,许多应用程序会显示快捷菜单。这样的应用程序应处理WM_CONTEXTMENU消息,并显示一个快捷菜单(如果适用)。如果应用程序不显示快捷菜单,则应将WM_CONTEXTMENU消息传递给DefWindowProc功能以进行默认处理。