The pen edit controls discussed previously provide a simple and efficient
method for an application to accept handwritten input. Pen edit controls continue
the philosophy and design of a standard Windows edit control; that is, they
place the burden of getting user input on the system rather than the application.
However, ink input API services also offer an application low-level control
over the writing process. Ink input allows an application to gather raw data from
the pen, then process it in any way it wishes. For example, the application
can manage its own inking or even postpone inking to a later time. It can massage
or filter the pen data in some way
say, by rotating an image based on pen movement. It can pass the data to a
handwriting recognizer or simply throw the data away. Ink input offers an
application greater freedom with ink data than simply parsing it for characters.
As you might expect, the increased control afforded by ink input requires
increased programming effort. The flexibility of ink input does not allow a simple
recipe of tasks, but in broad terms the three main steps are as follows:
- Start the chain of events.
- Collect and display data.
- Process the data.
An application can rely on the DoDefaultPenInput
function to collect and process ink input. For a description of this
function, see Chapter 2, "Starting Out with System Defaults." The following sections
focus on the lowest-level API services. Through these low-level services, an
application has complete control over ink input. These are the same services DoDefaultPenInput
calls internally. If you have read Chapter 2, the message traffic described
here will seem familiar.
The PENAPP sample application described in Chapter 7, "A Sample Pen
Application," demonstrates how to use the low-level API services for ink input. Most of
the code fragments in the following sections appear in the PENAPP.C source
listing located in the SAMPLES\C\PENAPP directory.
- Software for developers
Software for Android Developers
- More information resources
Unix Manual Pages