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

CreatePenDataEx
, GetStrokeAttributes, GetStrokeTableAttributes, SetStrokeTableAttributes, PENTIP

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database