Fixed Annotations

Most annotation objects can be "fixed". When an annotation is ‘fixed’, it gets painted using a default annotation container transform. The container transform is manipulated using the following methods

Scaling factors:

AnnSetScalarX

AnnSetScalarY

AnnGetScalarX

AnnGetScalarY

Offsets:

AnnSetOffsetX

AnnSetOffsetY

AnnGetOffsetX

AnnGetOffsetY

Changing the container transform is primarily used for scrolling and zooming annotations on an image.

The effect of fixing an annotation is that it is frozen on the window. Zooming and scrolling will move the underlying image and non-fixed annotations, but fixed annotations will not move. The annotation can still be moved by selecting and dragging the annotation with the mouse.

Fixing an annotation is easily accomplished using automation. Right-click the annotation, select the Fixed menu item, and the following dialog appears:

image\FixedDialogButton.gif

Select the Fixed check box, and click OK. Now when you zoom or scroll the underlying image, the fixed annotation stays in place. Again, the Fixed option works best when double buffering is enabled.

Leave the Adjust check box selected. This automatically adjusts the size and location of the object before fixing or un-fixing the annotation object. The result is the annotation object will not jump around as you change its fixed state.

Fixing an annotation programmatically is accomplished using the following:

AnnFixed property

AnnPushFixedState method

AnnPopFixedState method

AnnIsFixedRect method

Fixing an annotation can be very useful. For example, a physician might want the patient information displayed using a text annotation in the upper right hand corner of the window, regardless of how the image is scrolled or zoomed. Or you might want a button that never moves out of view even when the image is scrolled. Fixing a ruler or polyruler annotation is very useful because the ruler can be used to measure any part of an image. The tic marks and displayed units of the ruler will automatically adjust based on the zoom factor.

The following annotations cannot be fixed:

ANN_OBJECT_CONTAINER

ANN_OBJECT_REDACT

ANN_OBJECT_ENCRYPT