|
Starting the Chain of Events
When an application receives a WM_LBUTTONDOWN message, that message signals
the beginning of an input session. (For a definition of input session, see
"Beginning an Input Session" in Chapter 2.) The following code fragment shows how to
handle the message when not calling DoDefaultPenInput:
INKINGINFO inkinfo;
PCMINFO pcminfo;
HPCM hpcm;
LONG lExInfo;
int iRet = TRUE;
.
.
.
switch (wMsg)
{
case WM_LBUTTONDOWN: // Pen down (maybe)
lExInfo = GetMessageExtraInfo();
if (IsPenEvent( wMsg, LOWORD(lExInfo) ) // If true pen down,
{ // take the actions
. // described in the
. // text below
.
}
else // No, it's a mouse
{ // button down
The application initializes a PCMINFO structure and INKINGINFO structure in preparation for data collection and display. DoDefaultPenInput handles this task automatically, then provides the application an opportunity
to selectively change the default values. (For a description of the
submessages PE_GETPCMINFO and PE_GETINKINGINFO, see "DoDefaultPenInput Messages" in
Chapter 2.) If it does not call DoDefaultPenInput, an application must initialize the structures itself, as shown here:
#define TIME_OUT 1000 // Time-out in msec
PCMINFO pcm;
INKINGINFO ink;
.
.
.
pcm.cbSize = sizeof( PCMINFO ); // Required
pcm.dwPcm = PCM_TIMEOUT | PCM_RECTBOUND; // When to end session
pcm.dwTimeOut = TIME_OUT; // Time-out value in ms
GetWindowRect( hwnd, (LPRECT) &pcm.rectBound ); // Use window borders
ink.cbSize = sizeof( INKINGINFO ); // initialize
. // the INKINGINFO
. // structure "ink"
.
The above lines specify that the input session ends when the pen travels (or
taps) outside the hwnd window or pauses for the number of milliseconds set by the constant TIME_OUT. For a detailed description of these structures, see the entries for PCMINFO and INKINGINFO in Chapter 11, "Pen Application Programming Interface Structures."
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
More Online Helps
Win32 Programmer's Reference (win32.hlp)
Win32 Multimedia Programmer's Reference (mmedia.hlp)
OLE Programmer's Reference (ole.hlp)
Microsoft Windows Sockets 2 Reference (sock2.hlp)
Microsoft Windows Telephony API (TAPI) Programmer's Reference (tapi.hlp)
Unix Manual Pages
|