📄 wingdi.h
字号:
/* wingdi.h*//* * Copyright (c) 1999,2000 Greg Haerr <greg@censoft.com> * * Win32 GDI structures and API *//* portable coordinate definition*/typedef MWCOORD GDICOORD;/* inherit RECT and POINT from mwtypes.h*/typedef MWRECT RECT;typedef MWPOINT POINT;#if 0000typedef struct tagRECT { GDICOORD left; GDICOORD top; GDICOORD right; GDICOORD bottom;} RECT;typedef struct tagPOINT { GDICOORD x; GDICOORD y;} POINT; #endiftypedef RECT NEAR *PRECT, FAR *LPRECT;typedef POINT NEAR *PPOINT, FAR *LPPOINT;typedef struct tagSIZE { GDICOORD cx; GDICOORD cy;} SIZE, NEAR *PSIZE, FAR *LPSIZE;/* GetDCEx flags*/#define DCX_WINDOW 0x00000001L#define DCX_CACHE 0x00000002L#define DCX_NORESETATTRS 0x00000004L#define DCX_CLIPCHILDREN 0x00000008L#define DCX_CLIPSIBLINGS 0x00000010L#define DCX_PARENTCLIP 0x00000020L#define DCX_EXCLUDERGN 0x00000040L#define DCX_INTERSECTRGN 0x00000080L#define DCX_EXCLUDEUPDATE 0x00000100L#define DCX_INTERSECTUPDATE 0x00000200L#define DCX_LOCKWINDOWUPDATE 0x00000400L#define DCX_VALIDATE 0x00200000L#define DCX_DEFAULTCLIP 0x80000000L /* microwin only*/HDC WINAPI GetDCEx(HWND hwnd,HRGN hrgnClip,DWORD flags);HDC WINAPI GetDC(HWND hWnd);HDC WINAPI GetWindowDC(HWND hWnd);int WINAPI ReleaseDC(HWND hWnd, HDC hDC);BOOL WINAPI DeleteDC(HDC hdc);typedef struct tagPAINTSTRUCT { HDC hdc; BOOL fErase; /* indicates bkgnd needs erasing*/ RECT rcPaint; /* nyi*/ BOOL fRestore; /* nyi*/ BOOL fIncUpdate; /* nyi*/ BYTE rgbReserved[32];} PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, FAR *LPPAINTSTRUCT;HDC WINAPI BeginPaint(HWND hWnd, LPPAINTSTRUCT lpPaint);BOOL WINAPI EndPaint(HWND hWnd, CONST PAINTSTRUCT *lpPaint);#define RGB(r,g,b) MWRGB(r,g,b)#define GetRValue(rgb) ((BYTE)(rgb))#define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8))#define GetBValue(rgb) ((BYTE)((rgb)>>16))/* Background Modes */#define TRANSPARENT 1#define OPAQUE 2/* Text Alignment*/#define TA_NOUPDATECP 0#define TA_UPDATECP 1#define TA_LEFT 0#define TA_RIGHT 2#define TA_CENTER 6#define TA_TOP 0#define TA_BOTTOM 8#define TA_BASELINE 24#define TA_RTLREADING 256#define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING)COLORREF WINAPI SetTextColor(HDC, COLORREF);COLORREF WINAPI SetBkColor(HDC, COLORREF);int WINAPI SetBkMode(HDC, int);UINT WINAPI SetTextAlign(HDC hdc, UINT fMode);/* Binary raster ops */#define R2_BLACK 1 /* 0 */#define R2_NOTMERGEPEN 2 /* DPon */#define R2_MASKNOTPEN 3 /* DPna */#define R2_NOTCOPYPEN 4 /* PN */#define R2_MASKPENNOT 5 /* PDna */#define R2_NOT 6 /* Dn */#define R2_XORPEN 7 /* DPx */#define R2_NOTMASKPEN 8 /* DPan */#define R2_MASKPEN 9 /* DPa */#define R2_NOTXORPEN 10 /* DPxn */#define R2_NOP 11 /* D */#define R2_MERGENOTPEN 12 /* DPno */#define R2_COPYPEN 13 /* P */#define R2_MERGEPENNOT 14 /* PDno */#define R2_MERGEPEN 15 /* DPo */#define R2_WHITE 16 /* 1 */#define R2_LAST 16int WINAPI SetROP2(HDC hdc, int fnDrawMode);#define GDI_ERROR (0xFFFFFFFFL)#define CLR_INVALID 0xFFFFFFFFCOLORREF WINAPI GetPixel(HDC hdc, int x, int y);COLORREF WINAPI SetPixel(HDC hdc, int x, int y, COLORREF crColor);BOOL WINAPI MoveToEx(HDC hdc, int x, int y, LPPOINT lpPoint);BOOL WINAPI LineTo(HDC hdc, int x, int y);BOOL WINAPI Polyline(HDC hdc, CONST POINT *lppt, int cPoints);BOOL WINAPI PolyPolygon(HDC hdc, CONST POINT *lpPoints, LPINT lpPolyCounts, int nCount);BOOL WINAPI Rectangle(HDC hdc, int nLeft, int nTop, int nRight,int nBottom);BOOL WINAPI Ellipse(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);BOOL WINAPI Arc(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nXStartArc, int nYStartArc, int nXEndArc, int nYEndArc);BOOL WINAPI Pie(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nXRadial1, int nYRadial1, int nXRadial2, int nYRadial2);BOOL WINAPI Polygon(HDC hdc, CONST POINT *lpPoints, int nCount);int WINAPI FillRect(HDC hDC, CONST RECT *lprc, HBRUSH hbr);/* ExTextOut options*/#define ETO_OPAQUE 0x0002#define ETO_CLIPPED 0x0004 /* nyi*/BOOL WINAPI TextOut(HDC hdc, int x, int y, LPCSTR lpszString, int cbString);BOOL WINAPI ExtTextOut(HDC hdc, int x, int y, UINT fuOptions, CONST RECT *lprc, LPCSTR lpszString, UINT cbCount, CONST INT *lpDx);BOOL WINAPI ExtTextOutW(HDC hdc, int x, int y, UINT fuOptions, CONST RECT *lprc, LPCWSTR lpszString, UINT cbCount, CONST INT *lpDx);/* DrawText options*/#define DT_TOP 0x00000000#define DT_LEFT 0x00000000#define DT_CENTER 0x00000001#define DT_RIGHT 0x00000002#define DT_VCENTER 0x00000004#define DT_BOTTOM 0x00000008#define DT_WORDBREAK 0x00000010#define DT_SINGLELINE 0x00000020#define DT_EXPANDTABS 0x00000040#define DT_TABSTOP 0x00000080#define DT_NOCLIP 0x00000100#define DT_EXTERNALLEADING 0x00000200#define DT_CALCRECT 0x00000400#define DT_NOPREFIX 0x00000800#define DT_INTERNAL 0x00001000#define DT_EDITCONTROL 0x00002000#define DT_PATH_ELLIPSIS 0x00004000#define DT_END_ELLIPSIS 0x00008000#define DT_MODIFYSTRING 0x00010000#define DT_RTLREADING 0x00020000#define DT_WORD_ELLIPSIS 0x00040000int WINAPI DrawTextA(HDC hdc, LPCSTR lpString, int nCount, LPRECT lpRect, UINT uFormat);int WINAPI DrawTextW(HDC hdc, LPCWSTR lpString, int nCount, LPRECT lpRect, UINT uFormat);#define DrawText DrawTextABOOL WINAPI DrawDIB(HDC hdc,int x, int y,PMWIMAGEHDR pimage); /* microwin*//* GetSysColor, FillRect colors*/#define COLOR_SCROLLBAR 0#define COLOR_BACKGROUND 1#define COLOR_ACTIVECAPTION 2#define COLOR_INACTIVECAPTION 3#define COLOR_MENU 4#define COLOR_WINDOW 5#define COLOR_WINDOWFRAME 6#define COLOR_MENUTEXT 7#define COLOR_WINDOWTEXT 8#define COLOR_CAPTIONTEXT 9#define COLOR_ACTIVEBORDER 10#define COLOR_INACTIVEBORDER 11#define COLOR_APPWORKSPACE 12#define COLOR_HIGHLIGHT 13#define COLOR_HIGHLIGHTTEXT 14#define COLOR_BTNFACE 15#define COLOR_BTNSHADOW 16#define COLOR_GRAYTEXT 17#define COLOR_BTNTEXT 18#define COLOR_INACTIVECAPTIONTEXT 19#define COLOR_BTNHIGHLIGHT 20#define COLOR_3DDKSHADOW 21#define COLOR_3DLIGHT 22#define COLOR_INFOTEXT 23#define COLOR_INFOBK 24#define COLOR_DESKTOP COLOR_BACKGROUND#define COLOR_3DFACE COLOR_BTNFACE#define COLOR_3DSHADOW COLOR_BTNSHADOW#define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT#define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT#define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT#define COLOR_ALTERNATEBUTTONFACE 25#define COLOR_HOTLIGHT 26#define COLOR_GRADIENTACTIVECAPTION 27#define COLOR_GRADIENTINACTIVECAPTION 28DWORD WINAPI GetSysColor(int nIndex);COLORREF WINAPI SetSysColor(int nIndex, COLORREF crColor);/* Microwindows only*//* Stock Logical Objects */#define WHITE_BRUSH 0#define LTGRAY_BRUSH 1#define GRAY_BRUSH 2#define DKGRAY_BRUSH 3#define BLACK_BRUSH 4#define NULL_BRUSH 5#define HOLLOW_BRUSH NULL_BRUSH#define WHITE_PEN 6#define BLACK_PEN 7#define NULL_PEN 8#define OEM_FIXED_FONT 10#define ANSI_FIXED_FONT 11#define ANSI_VAR_FONT 12#define SYSTEM_FONT 13#define DEVICE_DEFAULT_FONT 14#define DEFAULT_PALETTE 15#define SYSTEM_FIXED_FONT 16#define DEFAULT_GUI_FONT 17#define DC_BRUSH 18#define DC_PEN 19#define STOCK_LAST 19/* Object types*/#define OBJ_PEN 1#define OBJ_BRUSH 2#define OBJ_DC 3#define OBJ_METADC 4#define OBJ_PAL 5#define OBJ_FONT 6#define OBJ_BITMAP 7#define OBJ_REGION 8#define OBJ_METAFILE 9#define OBJ_MEMDC 10#define OBJ_EXTPEN 11#define OBJ_ENHMETADC 12#define OBJ_ENHMETAFILE 13HGDIOBJ WINAPI GetStockObject(int nObject);HGDIOBJ WINAPI SelectObject(HDC hdc, HGDIOBJ hObject);BOOL WINAPI DeleteObject(HGDIOBJ hObject);int WINAPI SelectClipRgn(HDC hdc, HRGN hrgn);int WINAPI ExtSelectClipRgn(HDC hdc, HRGN hrgn, int fnMode);int WINAPI GetUpdateRgn(HWND hwnd, HRGN hrgn, BOOL bErase);BOOL WINAPI GetUpdateRect(HWND hwnd, LPRECT lpRect, BOOL bErase);/* Brush Styles */#define BS_SOLID 0#define BS_NULL 1#define BS_HOLLOW BS_NULLHBRUSH WINAPI CreateSolidBrush(COLORREF crColor);/* Pen Styles */#define PS_SOLID 0#define PS_NULL 5HPEN WINAPI CreatePen(int nPenStyle, int nWidth, COLORREF crColor);HBITMAP WINAPI CreateCompatibleBitmap(HDC hdc, int nWidth, int nHeight);HDC WINAPI CreateCompatibleDC(HDC hdc);/* BitBlit raster opcodes*/#define SRCCOPY (DWORD)MWROP_SRCCOPY /* win32 is 0x00CC0020*/#define SRCAND (DWORD)MWROP_SRCAND#define SRCINVERT (DWORD)MWROP_SRCINVERT#define BLACKNESS (DWORD)MWROP_BLACKNESSBOOL WINAPI BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,int nHeight, HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop);/* Palette entry flags*/#define PC_RESERVED 0x01#define PC_EXPLICIT 0x02#define PC_NOCOLLAPSE 0x04typedef struct tagPALETTEENTRY { BYTE peRed; BYTE peGreen; BYTE peBlue; BYTE peFlags;} PALETTEENTRY, *PPALETTEENTRY, FAR *LPPALETTEENTRY;UINT WINAPI GetSystemPaletteEntries(HDC hdc,UINT iStartIndex,UINT nEntries, LPPALETTEENTRY lppe);/* GetDeviceCaps parameters*/#define HORZRES 8 /* Horizontal width in pixels */#define VERTRES 10 /* Vertical height in pixels */#define BITSPIXEL 12 /* Number of bits per pixel */#define PLANES 14 /* Number of planes */#define LOGPIXELSX 88 /* Logical pixels/inch in X */#define LOGPIXELSY 90 /* Logical pixels/inch in Y */#define SIZEPALETTE 104 /* Number of entries in physical palette */int WINAPI GetDeviceCaps(HDC hdc, int nIndex);/* Region flags*/#define ERRORREGION MWREGION_ERROR#define NULLREGION MWREGION_NULL#define SIMPLEREGION MWREGION_SIMPLE#define COMPLEXREGION MWREGION_COMPLEX/* kluge for VxWorks*/#ifdef ERROR#undef ERROR#endif#define ERROR ERRORREGION#define RGN_ERROR ERRORREGION/* CombineRgn() Styles */#define RGN_AND 1#define RGN_OR 2#define RGN_XOR 3#define RGN_DIFF 4#define RGN_COPY 5#define RGN_MIN RGN_AND#define RGN_MAX RGN_COPY/* GetRegionData/ExtCreateRegion */#define RDH_RECTANGLES 1typedef struct _RGNDATAHEADER { DWORD dwSize; DWORD iType; DWORD nCount; DWORD nRgnSize; RECT rcBound;} RGNDATAHEADER, *PRGNDATAHEADER;typedef struct _RGNDATA { RGNDATAHEADER rdh; char Buffer[1];} RGNDATA, *PRGNDATA, *NPRGNDATA, *LPRGNDATA;/* Region entry points*/INT WINAPI OffsetRgn(HRGN hrgn, INT x, INT y );INT WINAPI GetRgnBox(HRGN hrgn, LPRECT rect );HRGN WINAPI CreateRectRgn(INT left, INT top, INT right, INT bottom);HRGN WINAPI CreateRectRgnIndirect(const RECT* rect );VOID WINAPI SetRectRgn(HRGN hrgn, INT left, INT top, INT right, INT bottom );HRGN WINAPI CreateRoundRectRgn(INT left, INT top, INT right, INT bottom, INT ellipse_width, INT ellipse_height );HRGN WINAPI CreateEllipticRgn(INT left, INT top, INT right, INT bottom );HRGN WINAPI CreateEllipticRgnIndirect(const RECT *rect );DWORD WINAPI GetRegionData(HRGN hrgn, DWORD count, LPRGNDATA rgndata);BOOL WINAPI PtInRegion(HRGN hrgn, INT x, INT y );BOOL WINAPI RectInRegion(HRGN hrgn, const RECT *rect );BOOL WINAPI EqualRgn(HRGN hrgn1, HRGN hrgn2 );INT WINAPI CombineRgn(HRGN hDest, HRGN hSrc1, HRGN hSrc2, INT mode);/* Rect entry points*/BOOL WINAPI IntersectRect(LPRECT dest, const RECT *src1, const RECT *src2 );BOOL WINAPI UnionRect(LPRECT dest, const RECT *src1, const RECT *src2 );BOOL WINAPI EqualRect(const RECT* rect1, const RECT* rect2 );BOOL WINAPI SubtractRect(LPRECT dest, const RECT *src1, const RECT *src2 );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -