L_AnnSetFillModeExt
#include "l_bitmap.h"
L_INT EXT_FUNCTION L_AnnSetFillModeExt(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 object’s 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/Medical 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 object’s 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
Like L_AnnSetFillMode, you can use this function to set the fill mode for annotation objects. With this function, the L_AnnSetFillMode function has been extended to support the new fill mode ANNMODE_ALPHA.
Before calling L_AnnSetFillModeExt 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:
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:
A value of -1 means to leave the existing nAlpha value unchanged
A value of 0 means the annotation object background is completely transparent
A value of 255 means the annotation background is completely opaque.
Any value between 0 and 255 can be used to specify a varying degree of transparency.
Note that the L_AnnSetROP2 function and the L_AnnSetFillModeExt 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 95 / 98 / Me, Windows 2000 / XP.
See Also
Example
// The following example toggles through all supported fill modes for an annotation object.
// The background color is set to blue in each case
L_INT ExampleAnnGetFillModeExt(HANNOBJECT hObject)
{
int nRet;
L_UINT uFillMode;
nRet = L_AnnGetFillModeExt(hObject, &uFillMode, NULL);
if (nRet != SUCCESS)
return nRet;
nRet = L_AnnSetBackColor(hObject, RGB(0,0,255), 0);
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_AnnSetFillModeExt(hObject, uFillMode, 128, 0);
return nRet;
}