|
Calling the TranslateAccelerator Function
To process accelerators, an application's (or thread's) message loop must
contain a call to the TranslateAccelerator function. TranslateAccelerator compares keystrokes to an accelerator table and, if it finds a match,
translates the keystrokes into a WM_COMMAND (or WM_SYSCOMMAND) message. The function then sends the message to a window procedure. The
parameters of the TranslateAccelerator function include the handle of the window that is to receive the WM_COMMAND
messages, the handle of the accelerator table used to translate accelerators,
and a pointer to an MSG structure containing a message from the queue. The following example shows
how to call TranslateAccelerator from within a message loop.
while (GetMessage(&msg, (HWND) NULL, 0, 0)) {
/* Check for accelerator keystrokes. */
if (!TranslateAccelerator(
hwndMain, /* handle of receiving window */
haccel, /* handle of active accel. table */
&msg)) { /* address of message data */
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
Related Links
Software for Delphi and C++ Builder developers
Software for Visual Studio .NET developers
Software for Visual Basic 6 developers
Delphi Tips&Tricks
MegaDetailed.NET
TMS Scripter Studio Pro components for Delphi/C++Builder
More Online Helps
Win32 Multimedia Programmer's Reference (mmedia.hlp)
OLE Programmer's Reference (ole.hlp)
Microsoft Windows Pen API Programmer's Reference (penapi.hlp)
Microsoft Windows Sockets 2 Reference (sock2.hlp)
Microsoft Windows Telephony API (TAPI) Programmer's Reference (tapi.hlp)
Unix Manual Pages
|