ADDBORDERINFO

typedef struct _ADDBORDERINFO
{
   L_UINT uStructSize; 
   L_INT nLeftThickness; 
   L_INT nTopThickness; 
   L_INT nRightThickness; 
   L_INT nBottomThickness; 
   L_INT nLocation; 
   L_INT nStyle; 
   L_INT nEffectStyle; 
   pBITMAPHANDLE pTileBitmap;
   L_INT nGradientStyle; 
   COLORREF crGradientStart;
   COLORREF crGradientEnd;
   L_INT nCurveIntensity;
   L_BOOL bSoftCurve;
   L_BOOL bShadow;
   L_INT nShadowSize;
   L_INT nShadowDirection;
   L_BOOL bBumpyShadow;
} ADDBORDERINFO, L_FAR * LPADDBORDERINFO;

The ADDBORDERINFO structure contains information about the border to add to the bitmap.

Member

Description

uStructSize

Size of this structure in bytes, for versioning. Use the sizeof() macro to calculate this value.

nLeftThickness

The thickness of the left side of the border.

nTopThickness

The thickness of the top side of the border.

nRightThickness

The thickness of the right side of the border.

nBottomThickness

The thickness of the bottom side of the border.

nLocation

Flag that indicates the position of the border. Possible values are:

 

Value

Meaning

 

BORDER_INSIDE

[0] The border will be within the bitmap. This is the default.

 

BORDER_OUTSIDE

[1] The border will be outside the bitmap.

nStyle

Flag that indicates the style of the border. Possible values are:

 

Value

Meaning

 

BORDER_STYLE_TRANSPARENT

[0] The border is transparent. Therefore, the bitmap itself shows through as the border. This is the default.

 

BORDER_STYLE_OPAQUE

[1] Use a single color to create the border. The color used is crGradientStart.

 

BORDER_STYLE_GRADIENT

[2] The border contains a color gradient from crGradientStart to crGradientEnd.

 

BORDER_STYLE_TILES

[3] The border is taken from the bitmap referenced by the pTileBitmap member.

nEffectStyle

Flag that indicates the change in the appearance of the border. By default there are no changes. The change also depends on the value of nCurveIntesity. If nCurveIntensity is zero, there are no changes. Possible values are:

 

Value

Meaning

 

BORDER_EFFECT_CURVEDIN

[1] Add a 3D appearance to the border by adding a high intensity color to the inner side of the border and a lower intensity color to the outer side of the border.

 

BORDER_EFFECT_CURVEDOUT

[2] Add a 3D appearance to the border by adding a high intensity color to the outer side of the border and a lower intensity color to the inner side of the border.

 

BORDER_EFFECT_RAISED

[3] Add a curved appearance to the border.

pTileBitmap

Pointer to a bitmap handle that references the tile bitmap. This is the bitmap the border is taken from when nStyle is BORDER_STYLE_TILES.

nGradientStyle

Flag that indicates the gradient style. This flag is used only when the nStyle member is BORDER_STYLE_GRADIENT. Possible values are:

 

Value

Meaning

 

BORDER_GRAD_INSIDEOUT

[0] The gradient starts from the inside of the border and progresses toward the outside of the border. This is the default.

 

BORDER_GRAD_CENTEROUT

[1] The gradient starts from the center of the border and progresses toward both the inside and outside of the border.

 

BORDER_GRAD_CORNEROUT

[2] The gradient starts from the corners of the border.

crGradientStart

COLORREF value that specified the starting color when nStyle is BORDER_STYLE_GRADIENT. This is also the color used when nStyle is BORDER_STYLE_OPAQUE.

crGradientEnd

COLORREF value that specified the ending color when nStyle is BORDER_STYLE_GRADIENT.

nCurveIntensity

Value that indicates the degree to which to change the appearance of the border. This value is used only when the nEffectStyle flag is set. The range is from –1000 to 1000.

 

bSoftCurve

Boolean flag that indicates whether to give the border a soft curve appearance. This flag is used only when nEffectStyle is BORDER_EFFECT_RAISED. Possible values are:

 

Value

Meaning

 

TRUE

Make the border more homogeneous in intensity, giving the appearance of a smoother curve.

 

FALSE

Do not make the border more homogeneous in intensity.

bShadow

Boolean flag that indicates whether to add a shadow to the border. Possible values are:

 

Value

Meaning

 

TRUE

Add a shadow to the border.

 

FALSE

Do not add a shadow to the border. This is the default.

 

nShadowSize

Value that indicates the width of the shadow, in pixels. This value is used only when bShadow is TRUE.

nShadowDirection

Flag that indicates the direction of the shadow. This value is used only when bShadow is TRUE. Possible values are:

 

Value

Meaning

 

BORDER_SHADOW_LEFT

[0] The shadow is on the left top side of the image. This is the default.

 

BORDER_SHADOW_RIGHT

[1] The shadow is on the right bottom side of the image.

 

BORDER_SHADOW_SURROUND

[2] The shadow surrounds the border.

 

bBumpyShadow

Boolean flag that indicates whether to increase the intensity near the far edge of the shadow. This flag is used only when bShadow is TRUE. Setting this flag to TRUE produces a good appearance for the shadow if nShadowSize is a value between 4 and 7. Possible values are:

 

Value

Meaning

 

TRUE

Increase the intensity near the far edge of the shadow.

 

FALSE

Do not increase the intensity near the far edge of the shadow.

Comments

LPADDBORDERINFO is a pointer to a ADDBORDERINFO structure. Where a function parameter type is LPADDBORDERINFO, declare an ADDBORDERINFO variable and pass the variable's address in the parameter. Declaring an LPADDBORDERINFO variable is necessary only if the program requires a pointer.

Some functions which take this structure as a parameter require that the structure be initialized prior to the function call. You must set the uStructSize member to the total size, in bytes, of the structure. Use the sizeof() macro to calculate this value. Functions that do not require the structure be initialized will take the total size of the structure, in bytes, as an additional function parameter.

The images below demonstrate some of the borders that are possible, by setting various members and flags.

nStyle = BORDER_STYLE_OPAQUE

image\BdrOpq.gif

 

nStyle = BORDER_STYLE_OPAQUE

nEffectStyle = BORDER_EFFECT_CURVEDIN

nCurveIntesity = 200

image\BdrOpqCvdIn.gif

 

nStyle = BORDER_STYLE_OPAQUE

nEffectStyle = BORDER_EFFECT_CURVEDOUT

nCurveIntesity = 200

image\BdrOpqCvdOut.gif

 

nStyle = BORDER_STYLE_OPAQUE

nEffectStyle = BORDER_EFFECT_RAISED

nCurveIntesity = 100

image\BdrOpqRsd.gif

 

nStyle = BORDER_STYLE_OPAQUE

nEffectStyle = BORDER_EFFECT_RAISED

nCurveIntesity = 100

bSoftCurve = TRUE

image\BdrOpqRsdScrv.gif

 

nStyle = BORDER_STYLE_GRADIENT

nGradientStyle = BORDER_GRAD_INSIDEOUT

crGradientStart = RGB(255, 0, 0)

crGradientEnd = RGB(0, 0, 255)

image\BdrGradInOut.gif

 

nStyle = BORDER_STYLE_GRADIENT

nGradientStyle = BORDER_GRAD_CENTEROUT

crGradientStart = RGB(255, 0, 0)

crGradientEnd = RGB(0, 0, 255)

image\BdrGradCtrOut1.gif

 

nStyle = BORDER_STYLE_GRADIENT

nGradientStyle = BORDER_GRAD_CORNEROUT

crGradientStart = RGB(255, 0, 0)

crGradientEnd = RGB(0, 0, 255)

image\BdrGradCtrOut2.gif

 

nBorderLocation = BORDER_OUTSIDE

nStyle = BORDER_STYLE_OPAQUE

bShadow = TRUE

nShadowSize = 5

bBumpyShadow = TRUE

nShadowDirection = BORDER_SHADOW_SURROUND

image\BdrOpqOutShadSur.gif