SetStrokeAttributes
2.0
Sets
attributes of a stroke or of a class of strokes in an HPENDATA object.
int SetStrokeAttributes( HPENDATA hpndt,
UINT iStrk, LPARAM lParam, UINT uOption
)
Parameters
hpndt
Handle to the
HPENDATA object.
iStrk
Zero-based
stroke index. A value of IX_END can be used to specify the last available
stroke in the pen data.
lParam
A pointer to
a structure (cast to the LPARAM type), or a byte, word, or double-word value,
depending on uOption. This parameter cannot be NULL.
uOption
Specifies the
attributes to set. This parameter has one of the following values:
|
Constant |
Description |
|
SSA_DOWN |
Set the up
and down state of the pen tip for the stroke specified by iStrk. lParam
is nonzero to make it a downstroke or 0 to make it an upstroke. |
|
SSA_PENTIP |
Set the
pen-tip characteristics (color, width, nib type) used by the stroke specified
by iStrk. lParam is a pointer to a PENTIP structure. If this
attribute does not already exist in the stroke class table, a new entry for
this type of stroke is created. There can be up to 255 different types of
strokes. |
|
SSA_PENTIPCLASS |
Set the
pen-tip characteristics (color, width, nib) for all strokes of which the
stroke specified by iStrk is a member. lParam is a pointer to a
PENTIP
structure. If the new type already exists in the stroke class table, the
types are merged. |
|
SSA_SELECT |
Set the
selection status of the stroke specified by iStrk. lParam is
nonzero to select it or 0 to deselect it. |
|
SSA_TIME |
Set the
absolute time of the stroke. lParam is a pointer to an ABSTIME structure. The sec
member of the ABSTIME
structure specifies the number of seconds since Jan 1, 1970, and the ms
member specifies the number of milliseconds offset from that time to the
beginning of the stroke. |
|
SSA_USER |
Set the
user value for the stroke specified by iStrk. lParam is a BYTE,
WORD, or DWORD value, and the pen data must have been created with the
corresponding size allocated for user values. |
|
SSA_USERCLASS |
Set the
user value for the class of strokes of which the stroke specified by iStrk
is a member. lParam is a BYTE, WORD, or DWORD value, and the pen data
must have been created with the corresponding size allocated for user values. |
Return Value
Returns PDR_OK
if successful; otherwise, returns one of the following negative values:
|
Constant |
Description |
|
PDR_COMPRESSED |
Pen data is
compressed. |
|
PDR_ERROR |
Parameter
or other unspecified error. |
|
PDR_MEMERR |
Memory
error. |
|
PDR_PNDTERR |
Invalid pen
data. |
|
PDR_SCTERR |
Stroke
class table may be full, or related error. |
|
PDR_STRKINDEXERR |
Invalid
stroke index. |
|
PDR_TIMESTAMPERR |
Timing
information was removed. |
|
PDR_VERSIONERR |
Could not
convert old pen data. |
Comments
The bounding
rectangle of the pen data is recalculated each time the SSA_DOWN option is
used, because the rectangle represents the bounds of only the pen-down points.
Setting a pen-up point to the down state simply adds (union) the bounding
rectangles of the existing pen data and the stroke. Setting a pen-down point to
the up state is more calculation-intensive, however, since the bounding
rectangle must be calculated from all of the remaining strokes.
See Also