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