ANNHANDLE

typedef struct tagANNHANDLE
{
   L_UINT uStructSize;
   L_INT nID;
   ANNPOINT aptContainer;
   POINT ptClient;
   L_BOOL bVisible;
   COLORREF crPen;
   COLORREF crFill;
   L_INT nShape;
   HCURSOR hCursor;
   L_UINT uFlags;
} ANNHANDLE, *pANNHANDLE;

The ANNHANDLE structure used for an annotation user handle.

Member

Description

uStructSize

Sizeof this structure. Use sizeof(ANNHANDLE)

nID

A unique ID associated with the user handle.

 

When adding more than one user handle to an annotation object, give each user handle a different ID. The ID is used to uniquely identify the annotation user handle in a hit test (LAnnContainer::HitTest)

aptContainer

An ANNPOINT structure that gives the location of the handle in container coordinates. Container coordinates are typically the same dimensions as the underlying bitmap, and are independent of zooming and scrolling.

 

Pass uFlags (ANNHANDLE_LOCATION | ANNHANDLE_CONTAINER_COORDINATES) to use this field.

ptClient

A POINT structure that gives the location of handle in client coordinates. Client coordinates factor in the current zoom factor, and the horizontal and vertical scrolling.

bVisible

A flag that indicates whether the handle is visible. Possible values are:

 

Value

Meaning

 

TRUE

Make the handle visible.

 

FALSE

Make the handle invisible.

 

Pass uFlags ANNHANDLE_VISIBLE to use this field. The default is visible.

 

crPen

A COLORREF value that defines the color of the pen used to draw the user handle (the outline of the handle).

 

Pass uFlags ANNHANDLE_PEN_COLOR to use this field. The default is black or RGB(0,0,0).

crFill

A COLORREF value that defines the color used to fill the user handle.

 

Pass uFlags ANNHANDLE_FILL_COLOR to use this field. The default is white or RGB(255,255,255).

nShape

A value that defines the shape of the user handle. Possible values are:

 

Value

Meaning

 

ANNHANDLE_SHAPE_SQUARE

The shape of the user handle is square

 

ANNHANDLE_SHAPE_CIRCLE

The shape of the user handle is a circle

 

 

Pass uFlags ANNHANDLE_SHAPE to use this field.

 

ANNHANDLE_SHAPE_CROSS

The shape of the user handle is a cross

 

ANNHANDLE_SHAPE_SQUARE_CROSS

The shape of the user handle is a square with a cross in the center

 

ANNHANDLE_SHAPE_CIRCLE_CROSS

The shape of the user handle is a circle with a cross in the center

hCursor

Handle to a cursor. This is the cursor that appears when the mouse hovers over the user handle. Set this field to zero to get the default cursor.

 

uFlags

Flags that identify which members of this structure to use. If the corresponding flag for a field is absent, the default value for the field is used. Possible values are:

 

Value

Meaning

 

ANNHANDLE_ID

[0x0001] Use nID

 

ANNHANDLE_LOCATION

[0x0002] Use either aptContainer or ptClient

 

ANNHANDLE_CONTAINER_COORDINATES

[0x0004] Use aptContainer. Must be used in conjunction with flag ANNHANDLE_LOCATION

 

ANNHANDLE_VISIBLE

[0x0008] Use bVisible

 

ANNHANDLE_PEN_COLOR

[0x0010] Use crPen

 

ANNHANDLE_FILL_COLOR

[0x0020] Use crFill

 

ANNHANDLE_SHAPE

[0x0040] Use nShape

 

ANNHANDLE_ALL

[0x007f] Logical “or” of all the above flags

Comments

For an example showing the use of this structure, refer to LAnnRTF::AddUserHandle.

This structure is used with the AddUserHandle, ChangeUserHandle, DeleteUserHandle, GetUserHandle, GetUserHandles, EnumerateHandles, and EnumHandleCallback functions of the LAnnAudioClip, LAnnButton, LAnnCrossProduct, LAnnCurve, LAnnCurveClosed, LAnnEllipse, LAnnEncrypt, LAnnFreehand, LAnnFreehandHotSpot, LAnnHilite, LAnnHotSpot, LAnnLine, LAnnNote, LAnnPolygon, LAnnPoint, LAnnPolyline, LAnnPolyRuler, LAnnProtractor, LAnnPointer, LAnnPushPin, LAnnRedact, LAnnRectangle, LAnnRTF, LAnnRuler, LAnnStamp, LAnnText, LAnnTextPointer, LAnnToolBar, LAnnVideo classes.

See Also

Functions:

LAnnContainer::Convert, LAnnContainer::HitTest, LAnnContainer::RestrictCursor, LAnnotation::GetRestrictToContainer, LAnnotation::SetRestrictToContainer, LAnnotation::Define2, LAnnotation::Define