#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.
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.
The return value is a Boolean value specifying whether or not the clipping rectangle was properly set.
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.