Passing Ink Between Hedit Controls
ID: Q90485
|
The information in this article applies to:
-
Microsoft Windows for Pen Computing, version 1.0
SUMMARY
To pass ink between hedit controls, an application must capture the ink
when the hedit control's parent window receives the HN_ENDREC notification
message. Then the application does either of the following:
- Sends a WM_HEDITCTL message with wParam set to HE_SETINKMODE to begin
collecting ink, and sends a WM_HEDITCTL message with wParam set to
HE_STOPINKMODE to stop collecting ink.
- Specifies RCO_SAVEHPENDATA in the lRcOptions field of the RC data
structure.
INK2H is a file that demonstrates capturing ink and using the WM_HEDITCTL
message.
MORE INFORMATION
The following files are available for download from the Microsoft
Download Center. Click the file names below to download the files:
Ink2h.exe
For more information about how to download files from the Microsoft
Download Center, please visit the Download Center at the following Web
address
http://www.microsoft.com/downloads/search.asp
and then click How to use the Microsoft Download Center.
The recognizer returns ink in the hpendata field of the RCRESULT structure.
Passing ink between hedit controls is more difficult than using a normal
device context (DC). Perform the following four steps to save the ink:
- Perform either of the following:
- Specify RCO_SAVEHPENDATA in the lRcOptions field of the RC data
structure.
- Send the WM_HEDITCTL message to the hedit control with HE_SETINKMODE
in wParam to begin collecting ink. Send the WM_HEDITCTL message to
the hedit control with HE_STOPINKMODE to stop collecting ink.
- When the application receives an HN_ENDREC notification for the source
hedit control, retrieve the handle to the memory containing the ink.
(When recognition is complete, the recognizer sends a WM_COMMAND message
with the HN_ENDREC notification as the high-order word of lParam and the
ID of the hedit control in wParam.)
- Use the SendMessage function to send a WM_HEDITCTL message with
HE_GETINKHANDLE as the value for wParam. If the call is successful, the
low-order word of the returned value contains a handle to the memory
containing the ink.
- Depending on the choice made at step 1 above, perform the corresponding
step:
- If the RCO_SAVEHPENDATA flag was set in step 1, Windows will not
delete the data after all corresponding WM_RCRESULT messages have
been sent. Therefore, call the DestroyPenData function to delete the
pen data when an HN_RCRESULT notification is received.
- If HE_SETINKMODE is used, call the DuplicatePenData function to save
the ink into a block of memory allocated by the GlobalAlloc function.
The procedure to place the collected ink into another hedit control is very
similar. Send a WM_HEDITCTL message with wParam set to HE_SETINKMODE and
the low-order of lParam set to the handle to the memory block containing
the ink. Then send a WM_HEDITCTL message with wParam set to HE_STOPINKMODE.
The INK2H sample application demonstrates copying ink between hedit
controls using the HE_SETINKMODE and HE_STOPINKMODE values with a
WM_HEDITCTL message.
Additional query words:
softlib INK2H.EXE kbfile
Keywords : kbfile kbsample kb16bitonly
Version : :1.0
Platform : WINDOWS
Issue type :