⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wingdi.pas

📁 详细Windows API大全有关知识以及相关问题
💻 PAS
📖 第 1 页 / 共 5 页
字号:
{******************************************************************}
{                                                       	   }
{       Borland Delphi Runtime Library                  	   }
{       Graphics Device Interface interface unit                   }
{ 								   }
{ Portions created by Microsoft are 				   }
{ Copyright (C) 1995-1999 Microsoft Corporation. 		   }
{ All Rights Reserved. 						   }
{ 								   }
{ The original file is: wingdi.h, released June 2000. 	           }
{ The original Pascal code is: WinGDI.pas, released December 2000  }
{ The initial developer of the Pascal code is Marcel van Brakel    }
{ (brakelm@bart.nl).                      			   }
{ 								   }
{ Portions created by Marcel van Brakel are			   }
{ Copyright (C) 1999 Marcel van Brakel.				   }
{ 								   }
{ Obtained through:                               	           }
{ Joint Endeavour of Delphi Innovators (Project JEDI)              }
{								   }
{ You may retrieve the latest version of this file at the Project  }
{ JEDI home page, located at http://delphi-jedi.org                }
{								   }
{ The contents of this file are used with permission, subject to   }
{ the Mozilla Public License Version 1.1 (the "License"); you may  }
{ not use this file except in compliance with the License. You may }
{ obtain a copy of the License at                                  }
{ http://www.mozilla.org/MPL/MPL-1.1.html 	                   }
{                                                                  }
{ Software distributed under the License is distributed on an 	   }
{ "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or   }
{ implied. See the License for the specific language governing     }
{ rights and limitations under the License. 			   }
{ 								   }
{******************************************************************}

unit WinGDI;

{$WEAKPACKAGEUNIT}

{$HPPEMIT ''}
{$HPPEMIT '#include "WinGDI.h"'}
{$HPPEMIT ''}

{$I WINDEFINES.INC}

interface

uses
  WinNT, WinType;

type
  PInteger = ^Integer; { TODO}

// Binary raster ops

const
  R2_BLACK       = 1; // 0
  {$EXTERNALSYM R2_BLACK}
  R2_NOTMERGEPEN = 2; // DPon
  {$EXTERNALSYM R2_NOTMERGEPEN}
  R2_MASKNOTPEN  = 3; // DPna
  {$EXTERNALSYM R2_MASKNOTPEN}
  R2_NOTCOPYPEN  = 4; // PN
  {$EXTERNALSYM R2_NOTCOPYPEN}
  R2_MASKPENNOT  = 5; // PDna
  {$EXTERNALSYM R2_MASKPENNOT}
  R2_NOT         = 6; // Dn
  {$EXTERNALSYM R2_NOT}
  R2_XORPEN      = 7; // DPx
  {$EXTERNALSYM R2_XORPEN}
  R2_NOTMASKPEN  = 8; // DPan
  {$EXTERNALSYM R2_NOTMASKPEN}
  R2_MASKPEN     = 9; // DPa
  {$EXTERNALSYM R2_MASKPEN}
  R2_NOTXORPEN   = 10; // DPxn
  {$EXTERNALSYM R2_NOTXORPEN}
  R2_NOP         = 11; // D
  {$EXTERNALSYM R2_NOP}
  R2_MERGENOTPEN = 12; // DPno
  {$EXTERNALSYM R2_MERGENOTPEN}
  R2_COPYPEN     = 13; // P
  {$EXTERNALSYM R2_COPYPEN}
  R2_MERGEPENNOT = 14; // PDno
  {$EXTERNALSYM R2_MERGEPENNOT}
  R2_MERGEPEN    = 15; // DPo
  {$EXTERNALSYM R2_MERGEPEN}
  R2_WHITE       = 16; // 1
  {$EXTERNALSYM R2_WHITE}
  R2_LAST        = 16;
  {$EXTERNALSYM R2_LAST}

// Ternary raster operations

  SRCCOPY     = DWORD($00CC0020); // dest = source
  {$EXTERNALSYM SRCCOPY}
  SRCPAINT    = DWORD($00EE0086); // dest = source OR dest
  {$EXTERNALSYM SRCPAINT}
  SRCAND      = DWORD($008800C6); // dest = source AND dest
  {$EXTERNALSYM SRCAND}
  SRCINVERT   = DWORD($00660046); // dest = source XOR dest
  {$EXTERNALSYM SRCINVERT}
  SRCERASE    = DWORD($00440328); // dest = source AND (NOT dest )
  {$EXTERNALSYM SRCERASE}
  NOTSRCCOPY  = DWORD($00330008); // dest = (NOT source)
  {$EXTERNALSYM NOTSRCCOPY}
  NOTSRCERASE = DWORD($001100A6); // dest = (NOT src) AND (NOT dest)
  {$EXTERNALSYM NOTSRCERASE}
  MERGECOPY   = DWORD($00C000CA); // dest = (source AND pattern)
  {$EXTERNALSYM MERGECOPY}
  MERGEPAINT  = DWORD($00BB0226); // dest = (NOT source) OR dest
  {$EXTERNALSYM MERGEPAINT}
  PATCOPY     = DWORD($00F00021); // dest = pattern
  {$EXTERNALSYM PATCOPY}
  PATPAINT    = DWORD($00FB0A09); // dest = DPSnoo
  {$EXTERNALSYM PATPAINT}
  PATINVERT   = DWORD($005A0049); // dest = pattern XOR dest
  {$EXTERNALSYM PATINVERT}
  DSTINVERT   = DWORD($00550009); // dest = (NOT dest)
  {$EXTERNALSYM DSTINVERT}
  BLACKNESS   = DWORD($00000042); // dest = BLACK
  {$EXTERNALSYM BLACKNESS}
  WHITENESS   = DWORD($00FF0062); // dest = WHITE
  {$EXTERNALSYM WHITENESS}

  NOMIRRORBITMAP = DWORD($80000000); // Do not Mirror the bitmap in this call
  {$EXTERNALSYM NOMIRRORBITMAP}
  CAPTUREBLT     = DWORD($40000000); // Include layered windows
  {$EXTERNALSYM CAPTUREBLT}

// Quaternary raster codes

function MAKEROP4(Fore, Back: DWORD): DWORD;
{$EXTERNALSYM MAKEROP4}

const
  GDI_ERROR = DWORD($FFFFFFFF);
  {$EXTERNALSYM GDI_ERROR}
  HGDI_ERROR = HANDLE($FFFFFFFF);
  {$EXTERNALSYM HGDI_ERROR}

// Region Flags

  ERROR         = 0;
  {$EXTERNALSYM ERROR}
  NULLREGION    = 1;
  {$EXTERNALSYM NULLREGION}
  SIMPLEREGION  = 2;
  {$EXTERNALSYM SIMPLEREGION}
  COMPLEXREGION = 3;
  {$EXTERNALSYM COMPLEXREGION}
  RGN_ERROR     = ERROR;
  {$EXTERNALSYM RGN_ERROR}

// CombineRgn() Styles

  RGN_AND  = 1;
  {$EXTERNALSYM RGN_AND}
  RGN_OR   = 2;
  {$EXTERNALSYM RGN_OR}
  RGN_XOR  = 3;
  {$EXTERNALSYM RGN_XOR}
  RGN_DIFF = 4;
  {$EXTERNALSYM RGN_DIFF}
  RGN_COPY = 5;
  {$EXTERNALSYM RGN_COPY}
  RGN_MIN  = RGN_AND;
  {$EXTERNALSYM RGN_MIN}
  RGN_MAX  = RGN_COPY;
  {$EXTERNALSYM RGN_MAX}

// StretchBlt() Modes

  BLACKONWHITE      = 1;
  {$EXTERNALSYM BLACKONWHITE}
  WHITEONBLACK      = 2;
  {$EXTERNALSYM WHITEONBLACK}
  COLORONCOLOR      = 3;
  {$EXTERNALSYM COLORONCOLOR}
  HALFTONE          = 4;
  {$EXTERNALSYM HALFTONE}
  MAXSTRETCHBLTMODE = 4;
  {$EXTERNALSYM MAXSTRETCHBLTMODE}

// New StretchBlt() Modes

  STRETCH_ANDSCANS    = BLACKONWHITE;
  {$EXTERNALSYM STRETCH_ANDSCANS}
  STRETCH_ORSCANS     = WHITEONBLACK;
  {$EXTERNALSYM STRETCH_ORSCANS}
  STRETCH_DELETESCANS = COLORONCOLOR;
  {$EXTERNALSYM STRETCH_DELETESCANS}
  STRETCH_HALFTONE    = HALFTONE;
  {$EXTERNALSYM STRETCH_HALFTONE}

// PolyFill() Modes

  ALTERNATE     = 1;
  {$EXTERNALSYM ALTERNATE}
  WINDING       = 2;
  {$EXTERNALSYM WINDING}
  POLYFILL_LAST = 2;
  {$EXTERNALSYM POLYFILL_LAST}

// Layout Orientation Options

  LAYOUT_RTL                        = $00000001; // Right to left
  {$EXTERNALSYM LAYOUT_RTL}
  LAYOUT_BTT                        = $00000002; // Bottom to top
  {$EXTERNALSYM LAYOUT_BTT}
  LAYOUT_VBH                        = $00000004; // Vertical before horizontal
  {$EXTERNALSYM LAYOUT_VBH}
  LAYOUT_ORIENTATIONMASK            = (LAYOUT_RTL or LAYOUT_BTT or LAYOUT_VBH);
  {$EXTERNALSYM LAYOUT_ORIENTATIONMASK}
  LAYOUT_BITMAPORIENTATIONPRESERVED = $00000008;
  {$EXTERNALSYM LAYOUT_BITMAPORIENTATIONPRESERVED}

// Text Alignment Options

  TA_NOUPDATECP = 0;
  {$EXTERNALSYM TA_NOUPDATECP}
  TA_UPDATECP   = 1;
  {$EXTERNALSYM TA_UPDATECP}

  TA_LEFT   = 0;
  {$EXTERNALSYM TA_LEFT}
  TA_RIGHT  = 2;
  {$EXTERNALSYM TA_RIGHT}
  TA_CENTER = 6;
  {$EXTERNALSYM TA_CENTER}

  TA_TOP      = 0;
  {$EXTERNALSYM TA_TOP}
  TA_BOTTOM   = 8;
  {$EXTERNALSYM TA_BOTTOM}
  TA_BASELINE = 24;
  {$EXTERNALSYM TA_BASELINE}

  TA_RTLREADING = 256;
  {$EXTERNALSYM TA_RTLREADING}

{$IFDEF WINVER_0400_GREATER}
  TA_MASK       = (TA_BASELINE + TA_CENTER + TA_UPDATECP + TA_RTLREADING);
  {$EXTERNALSYM TA_MASK}
{$ELSE}
  TA_MASK       = (TA_BASELINE + TA_CENTER + TA_UPDATECP);
  {$EXTERNALSYM TA_MASK}
{$ENDIF}

  VTA_BASELINE = TA_BASELINE;
  {$EXTERNALSYM VTA_BASELINE}
  VTA_LEFT     = TA_BOTTOM;
  {$EXTERNALSYM VTA_LEFT}
  VTA_RIGHT    = TA_TOP;
  {$EXTERNALSYM VTA_RIGHT}
  VTA_CENTER   = TA_CENTER;
  {$EXTERNALSYM VTA_CENTER}
  VTA_BOTTOM   = TA_RIGHT;
  {$EXTERNALSYM VTA_BOTTOM}
  VTA_TOP      = TA_LEFT;
  {$EXTERNALSYM VTA_TOP}

  ETO_OPAQUE  = $0002;
  {$EXTERNALSYM ETO_OPAQUE}
  ETO_CLIPPED = $0004;
  {$EXTERNALSYM ETO_CLIPPED}

  ETO_GLYPH_INDEX    = $0010;
  {$EXTERNALSYM ETO_GLYPH_INDEX}
  ETO_RTLREADING     = $0080;
  {$EXTERNALSYM ETO_RTLREADING}
  ETO_NUMERICSLOCAL  = $0400;
  {$EXTERNALSYM ETO_NUMERICSLOCAL}
  ETO_NUMERICSLATIN  = $0800;
  {$EXTERNALSYM ETO_NUMERICSLATIN}
  ETO_IGNORELANGUAGE = $1000;
  {$EXTERNALSYM ETO_IGNORELANGUAGE}

  ETO_PDY = $2000;
  {$EXTERNALSYM ETO_PDY}

  ASPECT_FILTERING = $0001;
  {$EXTERNALSYM ASPECT_FILTERING}

// Bounds Accumulation APIs

  DCB_RESET      = $0001;
  {$EXTERNALSYM DCB_RESET}
  DCB_ACCUMULATE = $0002;
  {$EXTERNALSYM DCB_ACCUMULATE}
  DCB_DIRTY      = DCB_ACCUMULATE;
  {$EXTERNALSYM DCB_DIRTY}
  DCB_SET        = (DCB_RESET or DCB_ACCUMULATE);
  {$EXTERNALSYM DCB_SET}
  DCB_ENABLE     = $0004;
  {$EXTERNALSYM DCB_ENABLE}
  DCB_DISABLE    = $0008;
  {$EXTERNALSYM DCB_DISABLE}

// Metafile Functions

  META_SETBKCOLOR            = $0201;
  {$EXTERNALSYM META_SETBKCOLOR}
  META_SETBKMODE             = $0102;
  {$EXTERNALSYM META_SETBKMODE}
  META_SETMAPMODE            = $0103;
  {$EXTERNALSYM META_SETMAPMODE}
  META_SETROP2               = $0104;
  {$EXTERNALSYM META_SETROP2}
  META_SETRELABS             = $0105;
  {$EXTERNALSYM META_SETRELABS}
  META_SETPOLYFILLMODE       = $0106;
  {$EXTERNALSYM META_SETPOLYFILLMODE}
  META_SETSTRETCHBLTMODE     = $0107;
  {$EXTERNALSYM META_SETSTRETCHBLTMODE}
  META_SETTEXTCHAREXTRA      = $0108;
  {$EXTERNALSYM META_SETTEXTCHAREXTRA}
  META_SETTEXTCOLOR          = $0209;
  {$EXTERNALSYM META_SETTEXTCOLOR}
  META_SETTEXTJUSTIFICATION  = $020A;
  {$EXTERNALSYM META_SETTEXTJUSTIFICATION}
  META_SETWINDOWORG          = $020B;
  {$EXTERNALSYM META_SETWINDOWORG}
  META_SETWINDOWEXT          = $020C;
  {$EXTERNALSYM META_SETWINDOWEXT}
  META_SETVIEWPORTORG        = $020D;
  {$EXTERNALSYM META_SETVIEWPORTORG}
  META_SETVIEWPORTEXT        = $020E;
  {$EXTERNALSYM META_SETVIEWPORTEXT}
  META_OFFSETWINDOWORG       = $020F;
  {$EXTERNALSYM META_OFFSETWINDOWORG}
  META_SCALEWINDOWEXT        = $0410;
  {$EXTERNALSYM META_SCALEWINDOWEXT}
  META_OFFSETVIEWPORTORG     = $0211;
  {$EXTERNALSYM META_OFFSETVIEWPORTORG}
  META_SCALEVIEWPORTEXT      = $0412;
  {$EXTERNALSYM META_SCALEVIEWPORTEXT}
  META_LINETO                = $0213;
  {$EXTERNALSYM META_LINETO}
  META_MOVETO                = $0214;
  {$EXTERNALSYM META_MOVETO}
  META_EXCLUDECLIPRECT       = $0415;
  {$EXTERNALSYM META_EXCLUDECLIPRECT}
  META_INTERSECTCLIPRECT     = $0416;
  {$EXTERNALSYM META_INTERSECTCLIPRECT}
  META_ARC                   = $0817;
  {$EXTERNALSYM META_ARC}
  META_ELLIPSE               = $0418;
  {$EXTERNALSYM META_ELLIPSE}
  META_FLOODFILL             = $0419;
  {$EXTERNALSYM META_FLOODFILL}
  META_PIE                   = $081A;
  {$EXTERNALSYM META_PIE}
  META_RECTANGLE             = $041B;
  {$EXTERNALSYM META_RECTANGLE}
  META_ROUNDRECT             = $061C;
  {$EXTERNALSYM META_ROUNDRECT}
  META_PATBLT                = $061D;
  {$EXTERNALSYM META_PATBLT}
  META_SAVEDC                = $001E;
  {$EXTERNALSYM META_SAVEDC}
  META_SETPIXEL              = $041F;
  {$EXTERNALSYM META_SETPIXEL}
  META_OFFSETCLIPRGN         = $0220;
  {$EXTERNALSYM META_OFFSETCLIPRGN}
  META_TEXTOUT               = $0521;
  {$EXTERNALSYM META_TEXTOUT}
  META_BITBLT                = $0922;
  {$EXTERNALSYM META_BITBLT}
  META_STRETCHBLT            = $0B23;
  {$EXTERNALSYM META_STRETCHBLT}
  META_POLYGON               = $0324;
  {$EXTERNALSYM META_POLYGON}
  META_POLYLINE              = $0325;
  {$EXTERNALSYM META_POLYLINE}
  META_ESCAPE                = $0626;
  {$EXTERNALSYM META_ESCAPE}
  META_RESTOREDC             = $0127;
  {$EXTERNALSYM META_RESTOREDC}
  META_FILLREGION            = $0228;
  {$EXTERNALSYM META_FILLREGION}
  META_FRAMEREGION           = $0429;
  {$EXTERNALSYM META_FRAMEREGION}
  META_INVERTREGION          = $012A;
  {$EXTERNALSYM META_INVERTREGION}
  META_PAINTREGION           = $012B;
  {$EXTERNALSYM META_PAINTREGION}
  META_SELECTCLIPREGION      = $012C;
  {$EXTERNALSYM META_SELECTCLIPREGION}
  META_SELECTOBJECT          = $012D;
  {$EXTERNALSYM META_SELECTOBJECT}
  META_SETTEXTALIGN          = $012E;
  {$EXTERNALSYM META_SETTEXTALIGN}
  META_CHORD                 = $0830;
  {$EXTERNALSYM META_CHORD}
  META_SETMAPPERFLAGS        = $0231;
  {$EXTERNALSYM META_SETMAPPERFLAGS}
  META_EXTTEXTOUT            = $0a32;
  {$EXTERNALSYM META_EXTTEXTOUT}
  META_SETDIBTODEV           = $0d33;
  {$EXTERNALSYM META_SETDIBTODEV}
  META_SELECTPALETTE         = $0234;
  {$EXTERNALSYM META_SELECTPALETTE}
  META_REALIZEPALETTE        = $0035;
  {$EXTERNALSYM META_REALIZEPALETTE}
  META_ANIMATEPALETTE        = $0436;
  {$EXTERNALSYM META_ANIMATEPALETTE}
  META_SETPALENTRIES         = $0037;
  {$EXTERNALSYM META_SETPALENTRIES}
  META_POLYPOLYGON           = $0538;
  {$EXTERNALSYM META_POLYPOLYGON}
  META_RESIZEPALETTE         = $0139;
  {$EXTERNALSYM META_RESIZEPALETTE}
  META_DIBBITBLT             = $0940;
  {$EXTERNALSYM META_DIBBITBLT}
  META_DIBSTRETCHBLT         = $0b41;
  {$EXTERNALSYM META_DIBSTRETCHBLT}
  META_DIBCREATEPATTERNBRUSH = $0142;
  {$EXTERNALSYM META_DIBCREATEPATTERNBRUSH}
  META_STRETCHDIB            = $0f43;
  {$EXTERNALSYM META_STRETCHDIB}
  META_EXTFLOODFILL          = $0548;
  {$EXTERNALSYM META_EXTFLOODFILL}
  META_SETLAYOUT             = $0149;
  {$EXTERNALSYM META_SETLAYOUT}
  META_DELETEOBJECT          = $01f0;
  {$EXTERNALSYM META_DELETEOBJECT}
  META_CREATEPALETTE         = $00f7;
  {$EXTERNALSYM META_CREATEPALETTE}
  META_CREATEPATTERNBRUSH    = $01F9;
  {$EXTERNALSYM META_CREATEPATTERNBRUSH}
  META_CREATEPENINDIRECT     = $02FA;
  {$EXTERNALSYM META_CREATEPENINDIRECT}
  META_CREATEFONTINDIRECT    = $02FB;
  {$EXTERNALSYM META_CREATEFONTINDIRECT}
  META_CREATEBRUSHINDIRECT   = $02FC;
  {$EXTERNALSYM META_CREATEBRUSHINDIRECT}
  META_CREATEREGION          = $06FF;
  {$EXTERNALSYM META_CREATEREGION}

type
  PDrawPatRect = ^TDrawPatRect;
  _DRAWPATRECT = record
    ptPosition: POINT;
    ptSize: POINT;
    wStyle: WORD;
    wPattern: WORD;
  end;
  {$EXTERNALSYM _DRAWPATRECT}
  DRAWPATRECT = _DRAWPATRECT;
  {$EXTERNALSYM DRAWPATRECT}
  TDrawPatRect = _DRAWPATRECT;

// GDI Escapes

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -