Accelerators and Menus
Using an accelerator is the same as choosing a menu item: Both actions cause
Windows to send a
WM_COMMAND or
WM_SYSCOMMAND message to the corresponding window procedure. The WM_COMMAND message
includes an identifier that the window procedure examines to determine the source of
the message. If an accelerator generated the WM_COMMAND message, the identifier
is that of the accelerator. Similarly, if a menu item generated the WM_COMMAND
message, the identifier is that of the menu item. Because an accelerator
provides a shortcut for choosing a command from a menu, an application usually
assigns the same identifier to the accelerator and the corresponding menu item.
An application processes an accelerator WM_COMMAND message in exactly the same
way as the corresponding menu item WM_COMMAND message. However, the WM_COMMAND
message contains a flag that specifies whether the message originated from an
accelerator or a menu item, in case accelerators must be processed differently
from their corresponding menu items. The WM_SYSCOMMAND message does not contain
this flag.
The identifier determines whether an accelerator generates a WM_COMMAND or
WM_SYSCOMMAND message. If the identifier has the same value as a menu item in the
System menu, the accelerator generates a WM_SYSCOMMAND message. Otherwise, the
accelerator generates a WM_COMMAND message.
If an accelerator has the same identifier as a menu item and the menu item is
grayed or disabled, the accelerator is disabled and does not generate a
WM_COMMAND or WM_SYSCOMMAND message. Also, an accelerator does not generate a command
message if the corresponding window is minimized.
When the user uses an accelerator that corresponds to a menu item, the window
procedure receives the
WM_INITMENU and
WM_INITMENUPOPUP messages as though the user had selected the menu item. For information about
how to process these messages, see
Menus.
An accelerator that corresponds to a menu item should be included in the text
of the menu item.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database