DirectX SDK

Introduction to Rectangles

Throughout DirectDraw and Windows programming, objects on the screen are referred to in terms of bounding rectangles. The sides of a bounding rectangle are always parallel to the sides of the screen, so the rectangle can be described by two points, the top-left corner and bottom-right corner. Most applications use the RECT structure to carry information about a bounding rectangle to use when blitting to the screen or performing hit detection.

[C++]

In C++, the RECT structure has the following definition:

typedef struct tagRECT { 
    LONG    left;    // This is the top-left corner's x-coordinate.
    LONG    top;     // The top-left corner's y-coordinate.
    LONG    right;   // The bottom-right corner's x-coordinate.
    LONG    bottom;  // The bottom-right corner's y-coordinate.
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT; 
[Visual Basic]

In Visual Basic, the RECT type has the following definition:

Type RECT
    Left As Long     // This is the top-left corner's x-coordinate.
    Top As Long      // The top-left corner's y-coordinate.
    Right As Long    // The bottom-right corner's x-coordinate.
    Bottom As Long   // The bottom-right corner's y-coordinate.
End Type

In the preceding example, the left and top members are the x- and y-coordinates of a bounding rectangle's top-left corner. Similarly, the right and bottom members make up the coordinates of the bottom-right corner. The following diagram illustrates how you can visualize these values.

In the interest of efficiency, consistency, and ease of use, all DirectDraw blitting functions work with rectangles. However, you can create the illusion of nonrectangular blit operations by using transparent blitting. For more information, see Transparent Blitting.