📄 gdi.inc
字号:
; GDI32.DLL structures and constants
struc SIZE
{
.cx dd ?
.cy dd ?
}
struc BITMAP
{
.bmType dd ?
.bmWidth dd ?
.bmHeight dd ?
.bmWidthBytes dd ?
.bmPlanes dw ?
.bmBitsPixel dw ?
.bmBits dd ?
.size = $ - .bmType
}
struc BITMAPCOREHEADER
{
.bcSize dd ?
.bcWidth dw ?
.bcHeight dw ?
.bcPlanes dw ?
.bcBitCount dw ?
.size = $ - .bcSize
}
struc BITMAPINFOHEADER
{
.biSize dd ?
.biWidth dd ?
.biHeight dd ?
.biPlanes dw ?
.biBitCount dw ?
.biCompression dd ?
.biSizeImage dd ?
.biXPelsPerMeter dd ?
.biYPelsPerMeter dd ?
.biClrUsed dd ?
.biClrImportant dd ?
.size = $ - .biSize
}
struc BITMAPFILEHEADER
{
.bfType dw ?
.bfSize dd ?
.bfReserved1 dw ?
.bfReserved2 dw ?
.bfOffBits dd ?
}
struc TEXTMETRIC
{
.tmHeight dd ?
.tmAscent dd ?
.tmDescent dd ?
.tmInternalLeading dd ?
.tmExternalLeading dd ?
.tmAveCharWidth dd ?
.tmMaxCharWidth dd ?
.tmWeight dd ?
.tmOverhang dd ?
.tmDigitizedAspectX dd ?
.tmDigitizedAspectY dd ?
.tmFirstChar db ?
.tmLastChar db ?
.tmDefaultChar db ?
.tmBreakChar db ?
.tmItalic db ?
.tmUnderlined db ?
.tmStruckOut db ?
.tmPitchAndFamily db ?
.tmCharSet db ?
}
struc LOGBRUSH
{
.lbStyle dd ?
.lbColor dd ?
.lbHatch dd ?
}
struc LOGPEN
{
.lopnStyle dd ?
.lopnWidth POINT
.lopnColor dd ?
}
struc EXTLOGPEN
{
elpPenStyle dd ?
elpWidth dd ?
elpBrushStyle dd ?
elpColor dd ?
elpHatch dd ?
elpNumEntries dd ?
elpStyleEntry dd ?
}
struc LOGFONT
{
.lfHeight dd ?
.lfWidth dd ?
.lfEscapement dd ?
.lfOrientation dd ?
.lfWeight dd ?
.lfItalic db ?
.lfUnderline db ?
.lfStrikeOut db ?
.lfCharSet db ?
.lfOutPrecision db ?
.lfClipPrecision db ?
.lfQuality db ?
.lfPitchAndFamily db ?
.lfFaceName rb 32
.size = $ - .lfHeight
}
struc ENUMLOGFONT
{
.elfLogFont LOGFONT
.elfFullName rb 64
.elfStyle rb 32
}
struc ENUMLOGFONTEX
{
.elfLogFont LOGFONT
.elfFullName rb 64
.elfStyle rb 32
.elfScript rb 32
}
; General constants
GDI_ERROR = 0FFFFFFFFh
HGDI_ERROR = 0FFFFFFFFh
; Binary raster operations
R2_BLACK = 1
R2_NOTMERGEPEN = 2
R2_MASKNOTPEN = 3
R2_NOTCOPYPEN = 4
R2_MASKPENNOT = 5
R2_NOT = 6
R2_XORPEN = 7
R2_NOTMASKPEN = 8
R2_MASKPEN = 9
R2_NOTXORPEN = 10
R2_NOP = 11
R2_MERGENOTPEN = 12
R2_COPYPEN = 13
R2_MERGEPENNOT = 14
R2_MERGEPEN = 15
R2_WHITE = 16
; Raster operations
SRCCOPY = 00CC0020h
SRCPAINT = 00EE0086h
SRCAND = 008800C6h
SRCINVERT = 00660046h
SRCERASE = 00440328h
NOTSRCCOPY = 00330008h
NOTSRCERASE = 001100A6h
MERGECOPY = 00C000CAh
MERGEPAINT = 00BB0226h
PATCOPY = 00F00021h
PATPAINT = 00FB0A09h
PATINVERT = 005A0049h
DSTINVERT = 00550009h
BLACKNESS = 00000042h
WHITENESS = 00FF0062h
; Region flags
ERROR = 0
NULLREGION = 1
SIMPLEREGION = 2
COMPLEXREGION = 3
; CombineRgn styles
RGN_AND = 1
RGN_OR = 2
RGN_XOR = 3
RGN_DIFF = 4
RGN_COPY = 5
; StretchBlt modes
BLACKONWHITE = 1
WHITEONBLACK = 2
COLORONCOLOR = 3
HALFTONE = 4
STRETCH_ANDSCANS = BLACKONWHITE
STRETCH_ORSCANS = WHITEONBLACK
STRETCH_DELETESCANS = COLORONCOLOR
STRETCH_HALFTONE = HALFTONE
; PolyFill modes
ALTERNATE = 1
WINDING = 2
; Background modes
TRANSPARENT = 1
OPAQUE = 2
; Point types
PT_CLOSEFIGURE = 1
PT_LINETO = 2
PT_BEZIERTO = 4
PT_MOVETO = 6
; Mapping modes
MM_TEXT = 1
MM_LOMETRIC = 2
MM_HIMETRIC = 3
MM_LOENGLISH = 4
MM_HIENGLISH = 5
MM_TWIPS = 6
MM_ISOTROPIC = 7
MM_ANISOTROPIC = 8
; Coordinate modes
ABSOLUTE = 1
RELATIVE = 2
; Stock logical objects
WHITE_BRUSH = 0
LTGRAY_BRUSH = 1
GRAY_BRUSH = 2
DKGRAY_BRUSH = 3
BLACK_BRUSH = 4
NULL_BRUSH = 5
HOLLOW_BRUSH = NULL_BRUSH
WHITE_PEN = 6
BLACK_PEN = 7
NULL_PEN = 8
OEM_FIXED_FONT = 10
ANSI_FIXED_FONT = 11
ANSI_VAR_FONT = 12
SYSTEM_FONT = 13
DEVICE_DEFAULT_FONT = 14
DEFAULT_PALETTE = 15
SYSTEM_FIXED_FONT = 16
DEFAULT_GUI_FONT = 17
; Brush styles
BS_SOLID = 0
BS_NULL = 1
BS_HOLLOW = BS_NULL
BS_HATCHED = 2
BS_PATTERN = 3
BS_INDEXED = 4
BS_DIBPATTERN = 5
BS_DIBPATTERNPT = 6
BS_PATTERN8X8 = 7
BS_DIBPATTERN8X8 = 8
BS_MONOPATTERN = 9
; Hatch styles
HS_HORIZONTAL = 0
HS_VERTICAL = 1
HS_FDIAGONAL = 2
HS_BDIAGONAL = 3
HS_CROSS = 4
HS_DIAGCROSS = 5
; Pen styles
PS_SOLID = 0
PS_DASH = 1
PS_DOT = 2
PS_DASHDOT = 3
PS_DASHDOTDOT = 4
PS_NULL = 5
PS_INSIDEFRAME = 6
PS_USERSTYLE = 7
PS_ALTERNATE = 8
PS_ENDCAP_ROUND = 0
PS_ENDCAP_SQUARE = 100h
PS_ENDCAP_FLAT = 200h
PS_JOIN_ROUND = 0
PS_JOIN_BEVEL = 1000h
PS_JOIN_MITER = 2000h
PS_COSMETIC = 0
PS_GEOMETRIC = 010000h
; Arc directions
AD_COUNTERCLOCKWISE = 1
AD_CLOCKWISE = 2
; Text alignment options
TA_NOUPDATECP = 0
TA_UPDATECP = 1
TA_LEFT = 0
TA_RIGHT = 2
TA_CENTER = 6
TA_TOP = 0
TA_BOTTOM = 8
TA_BASELINE = 24
TA_RTLREADING = 100h
VTA_BASELINE = TA_BASELINE
VTA_LEFT = TA_BOTTOM
VTA_RIGHT = TA_TOP
VTA_CENTER = TA_CENTER
VTA_BOTTOM = TA_RIGHT
VTA_TOP = TA_LEFT
; ExtTextOut options
ETO_OPAQUE = 0002h
ETO_CLIPPED = 0004h
ETO_GLYPH_INDEX = 0010h
ETO_RTLREADING = 0080h
ETO_IGNORELANGUAGE = 1000h
; Bitmap compression types
BI_RGB = 0
BI_RLE8 = 1
BI_RLE4 = 2
BI_BITFIELDS = 3
; tmPitchAndFamily flags
TMPF_FIXED_PITCH = 1
TMPF_VECTOR = 2
TMPF_TRUETYPE = 4
TMPF_DEVICE = 8
; Font output precision values
OUT_DEFAULT_PRECIS = 0
OUT_STRING_PRECIS = 1
OUT_CHARACTER_PRECIS = 2
OUT_STROKE_PRECIS = 3
OUT_TT_PRECIS = 4
OUT_DEVICE_PRECIS = 5
OUT_RASTER_PRECIS = 6
OUT_TT_ONLY_PRECIS = 7
OUT_OUTLINE_PRECIS = 8
OUT_SCREEN_OUTLINE_PRECIS = 9
; Font clipping precision values
CLIP_DEFAULT_PRECIS = 0
CLIP_CHARACTER_PRECIS = 1
CLIP_STROKE_PRECIS = 2
CLIP_LH_ANGLES = 10h
CLIP_TT_ALWAYS = 20h
CLIP_EMBEDDED = 80h
; Font output quality values
DEFAULT_QUALITY = 0
DRAFT_QUALITY = 1
PROOF_QUALITY = 2
NONANTIALIASED_QUALITY = 3
ANTIALIASED_QUALITY = 4
; Font pitch values
DEFAULT_PITCH = 0
FIXED_PITCH = 1
VARIABLE_PITCH = 2
MONO_FONT = 8
; Font families
FF_DONTCARE = 00h
FF_ROMAN = 10h
FF_SWISS = 20h
FF_MODERN = 30h
FF_SCRIPT = 40h
FF_DECORATIVE = 50h
; Font weights
FW_DONTCARE = 0
FW_THIN = 100
FW_EXTRALIGHT = 200
FW_LIGHT = 300
FW_NORMAL = 400
FW_MEDIUM = 500
FW_SEMIBOLD = 600
FW_BOLD = 700
FW_EXTRABOLD = 800
FW_HEAVY = 900
FW_ULTRALIGHT = FW_EXTRALIGHT
FW_REGULAR = FW_NORMAL
FW_DEMIBOLD = FW_SEMIBOLD
FW_ULTRABOLD = FW_EXTRABOLD
FW_BLACK = FW_HEAVY
; Character set values
ANSI_CHARSET = 0
DEFAULT_CHARSET = 1
SYMBOL_CHARSET = 2
SHIFTJIS_CHARSET = 128
HANGEUL_CHARSET = 129
GB2312_CHARSET = 134
CHINESEBIG5_CHARSET = 136
OEM_CHARSET = 255
JOHAB_CHARSET = 130
HEBREW_CHARSET = 177
ARABIC_CHARSET = 178
GREEK_CHARSET = 161
TURKISH_CHARSET = 162
VIETNAMESE_CHARSET = 163
THAI_CHARSET = 222
EASTEUROPE_CHARSET = 238
RUSSIAN_CHARSET = 204
MAC_CHARSET = 77
BALTIC_CHARSET = 186
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -