L_AnnSetFillMode

#include "l_bitmap.h"

L_LTANN_API L_INT L_AnnSetFillMode(hObject, uFillMode, nAlpha, uFlags)

HANNOBJECT hObject;

/* handle to the annotation object*/

L_UINT uFillMode;

/* constant that specifies the object's fill mode*/

L_INT nAlpha;

/* integer that specifies the objects alpha value */

L_UINT uFlags;

/* flags that determine which objects to process */

Sets the fill mode and alpha of the specified annotation object.

This function is available in the Document and Medical Imaging toolkits.

Parameter

Description

hObject

Handle to the annotation object.

uFillMode

The constant that specifies the object's fill mode. Possible fill mode values are:

 

Value

Meaning

 

ANNMODE_TRANSPARENT

[0] Transparent

 

ANNMODE_TRANSLUCENT

[1] Translucent

 

ANNMODE_OPAQUE

[2] Opaque

 

ANNMODE_ALPHA

[3] Alpha

nAlpha

Value that specifies the objects alpha value. This is only valid if uFillMode is ANNMODE_ALPHA. Possible values are: -1..255. For an explanation of these values, refer to the Comments section below.

uFlags

Flags that determine which objects to process. Most of the flags apply only to container objects. You can combine values when appropriate by using a bitwise OR ( | ). The following are valid values:

 

Value

Meaning

 

0

Process only the specified object.

 

ANNFLAG_SELECTED

[0x0001] Process only objects that have the selected property set to TRUE. For getting and setting the selected property, use the L_AnnGetSelected and L_AnnSetSelected functions.

 

ANNFLAG_NOTTHIS

[0x0004] Process only one level of objects within the specified container, not the container itself. If there are containers within the container, they are modified, but the objects within them are not.

 

ANNFLAG_RECURSE

[0x0008] Process objects within a container, and within any subcontainers, down to any level.

 

ANNFLAG_NOTCONTAINER

[0x0002] (Used with ANNFLAG_RECURSE) Process objects within containers, not the containers themselves.

 

ANNFLAG_NOINVALIDATE

[0x0010] Do not invalidate the affected rectangle in the window. Use this to avoid generating unwanted paint messages.

 

ANNFLAG_CHECKMENU

[0x0020] Process objects only if the ANNAUTOTEXT_MENU_FILL menu item has been selected.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

You can use this function to set the fill mode for annotation objects. This function supports the new fill mode ANNMODE_ALPHA.

Before calling L_AnnSetFillMode enable alpha background filling. You can enable alpha background filling by using the following code snippet:

L_VOID ExampleEnableOption(HANNOBJECT hAutomation)
{
   L_UINT uOptions = 0;
   L_AnnGetOptions ( hAutomation);
   L_AnnSetOptions ( hAutomation, uOptions | OPTIONS_NEW_ALPHA);
}

The following figure displays rectangle annotation objects using different alpha values:

image\alpha.gif

The nAlpha parameter is used only if the uFillMode parameter is passed as ANNMODE_ALPHA, in which case, nAlpha can be between -1 and 255 inclusive. Values are used as follows:

Note that the L_AnnSetROP2 function and the L_AnnSetFillMode function affect each other. If you set uFillMode to ANNFILLMODE_OPAQUE, then uROP2 cannot be ANNROP2_AND. If you set uFillMode to ANNFILLMODE_TRANSLUCENT, then uROP2 has to be ANNROP2_AND. If you set uFillMode to ANNFILLMODE_TRANSPARENT, uROP2 can be anything.

To see the possible fill modes and patterns, refer to Illustration of Fill Options for Annotations.

This function applies to multiple and selected objects based on values of the uFlags parameter.

This function does not affect objects that do not have this property or that do not let you change the property. For descriptions of the various types of objects and their properties, refer to Types of Annotations.

Required DLLs and Libraries

LTANN

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Platforms

Windows 2000 / XP/Vista.

See Also

Functions:

L_AnnGetFillMode, L_AnnSetFillPattern, L_AnnGetFillPattern, L_AnnGetPolyFillMode, L_AnnSetPolyFillMode, L_AnnGetROP2, L_AnnSetROP2, L_AnnSetOptions, L_AnnGetOptions

Topics:

Annotation Features

 

Annotation Functions (Document/Medical only): Displaying Annotations

 

Annotation Functions: Object Information

 

Annotation Objects - Default Values

 

Annotation Objects - Automated Features

 

Implementing Annotations

 

Implementing a Non-automated Annotation Program

 

Obtaining Annotation Object Information

 

Altering Annotation Object Settings

 

Illustration of Fill Options for Annotations

 

User Interface for Container and Automation Objects

 

Displaying and Manipulating Annotation Objects

 

Container Annotation Object

 

Annotation Automation Object

 

Annotation Functions (Document/Medical only): Getting and Setting Color Properties

 

Annotation Functions (Document/Medical only): Getting and Setting the Alpha Property

Example

// The background color is set to blue in each case

 L_INT AnnSetFillModeExample(HANNOBJECT hObject)
{
   L_INT    nRet;
   L_UINT   uFillMode;

   nRet = L_AnnGetFillMode(hObject, &uFillMode, NULL);
   if (nRet != SUCCESS)
      return nRet;

   nRet = L_AnnSetBackColor(hObject, RGB(0,0,255), 0);
   if(nRet != SUCCESS)
      return nRet;

   switch(uFillMode)
   {
   case ANNMODE_TRANSPARENT:
      uFillMode = ANNMODE_TRANSLUCENT;
      break;

   case ANNMODE_TRANSLUCENT:
      uFillMode = ANNMODE_OPAQUE;
      break;

   case ANNMODE_OPAQUE:
      uFillMode = ANNMODE_ALPHA;
      break;

   case ANNMODE_ALPHA:
   default:
      uFillMode = ANNMODE_TRANSPARENT;
      break;
   }

   // Arbitrarily set an alpha value of 128
   // Note that this value is used only if the uFillMode is ANNMODE_ALPHA
   nRet = L_AnnSetFillMode(hObject, uFillMode, 128, 0);
   return nRet;
}