Win32 DC的数据结构

typedef struct tagDC {
    GDIOBJHDR        header;
    HDC            hSelf;                 /* Handle to this DC */
    const struct    tagDC_FUNCS *funcs; /* DC function table */
    PHYSDEV      physDev;                  /* Physical device */

    /*(driver - specific) */
    INT            saveLevel;
    DWORD        dwHookData;
    FARPROC16   hookProc;            /* the original SEGPTR  */
    DCHOOKPROC  hookThunk;          /* and the thunk to call it */
   
    INT            wndOrgX;                  /* Window origin */
    INT            wndOrgY;
    INT            wndExtX;                  /* Window extent */
    INT            wndExtY;

    INT        vportOrgX;      /* Viewport origin */
    INT        vportOrgY;
    INT        vportExtX;      /* Viewport extent */
    INT        vportExtY;

    int        flags;
    HRGN       hClipRgn;       /* Clip region (may be 0) */
    HRGN       hVisRgn;         /* Visible region (must never be 0) */
    HRGN       hGCClipRgn;     /* GC clip region(ClipRgn AND VisRgn) */

    HPEN       hPen;
    HBRUSH       hBrush;
    HFONT        hFont;
    HBITMAP   hBitmap;
    HANDLE       hDevice;
    HPALETTE    hPalette;
    GdiFont   gdiFont;
    GdiPath   path;

    WORD       ROPmode;
    WORD       polyFillMode;
    WORD       stretchBltMode;
    WORD       relAbsMode;

    WORD       backgroundMode;

    COLORREF  backgroundColor;
    COLORREF  textColor;

    short      brushOrgX;
    short      brushOrgY;
    WORD       textAlign;     /* Text alignment from  SetTextAlign() */
    short      charExtra;     /* Spacing from  SetTextCharacterExtra()*/
    short      breakTotalExtra;   /* Total extra space for justification */
    short      breakCount;         /* Break char. count */
    short      breakExtra;         /* breakTotalExtra breakCount */

    short      breakRem;       /* breakTotalExtra % breakCount */
    RECT       totalExtent;
    BYTE       bitsPerPixel;
    INT        MapMode;
    INT        GraphicsMode;        /* Graphics mode */
    ABORTPROC     pAbortProc;     /* AbortProc for Printing */
    ABORTPROC16   pAbortProc16;
    INT        CursPosX;             /* Current position */
    INT      CursPosY;
    INT        ArcDirection;

    /* World - to - window transformation */
    XFORM         xformWorld2Wnd;
    /* World - to - viewport transformation */
    XFORM         xformWorld2Vport;
    /* Inverse of the above transformation */
    XFORM         xformVport2World;
    /* Is xformVport2World valid? */
    BOOL          vport2WorldValid;
} DC;

你可能感兴趣的:(数据结构,struct,header,transformation,alignment,printing)