SET_CLIP_BOX

  #define SET_CLIP_BOX 4108    

  short Control(lpDevice, SET_CLIP_BOX, lpClipBox, NULL)    
  LPPDEVICE lpDevice;    
  LPRECT lpClipBox;    

The SET_CLIP_BOX escape sets the clipping rectangle or restores the previous clipping rectangle. The SET_CLIP_BOX escape is required of any device driver that implements the coordinate transformation escapes.

Parameters

lpDevice

Points to a PDEVICE structure specifying the destination device.

lpClipBox

Points to a RECT structure that contains the bounding rectangle of the desired clipping area. If the lpClipBox parameter is not NULL, the previous clipping rectangle is saved, and the current clipping rectangle is set to the specified bounds. If lpClipBox is NULL, the previous clipping rectangle is restored.

Return Value

The return value is a Boolean value specifying whether or not the clipping rectangle was properly set.

Comments

Drivers that implement the TRANSFORM_CTM, SAVE_CTM, and RESTORE_CTM escapes must also implement this escape.

When an applications calls a GDI output function, GDI calculates a clipping rectangle that bounds the primitive, and then passes both the primitive and the clipping rectangle to the driver. The driver is expected to clip the primitive to the specified bounding rectangle. However, when an application uses the coordinate transformation escapes, the clipping rectangle that was calculated by GDI is generally invalid.

The application can use the SET_CLIP_BOX escape to specify the correct clipping rectangle when coordinate transformations are used.

See Also

RESTORE_CTM, SAVE_CTM, TRANSFORM_CTM