浏览代码

+ added the win16api text support functions

git-svn-id: trunk@31698 -
nickysn 10 年之前
父节点
当前提交
e180814ea2
共有 3 个文件被更改,包括 90 次插入0 次删除
  1. 6 0
      rtl/win16/win31.pp
  2. 45 0
      rtl/win16/winprocsh.inc
  3. 39 0
      rtl/win16/wintypes.inc

+ 6 - 0
rtl/win16/win31.pp

@@ -265,6 +265,12 @@ function GetBrushOrgEx(hDC: HDC; lpPoint: LPPOINT): BOOL; external 'GDI';
 function MoveToEx(hdc: HDC; x, y: SmallInt; lpPoint: LPPOINT): BOOL; external 'GDI';
 function GetCurrentPositionEx(hdc: HDC; lpPoint: LPPOINT): BOOL; external 'GDI';
 
+{ Text support }
+function GetTextExtentPoint(hdc: HDC; lpszString: LPCSTR; cbString: SmallInt; lpSize: LPSIZE): BOOL; external 'GDI';
+{$ifdef VAR_PARAMS_ARE_FAR}
+function GetTextExtentPoint(hdc: HDC; lpszString: LPCSTR; cbString: SmallInt; var Size: SIZE): BOOL; external 'GDI';
+{$endif}
+
 implementation
 
 end.

+ 45 - 0
rtl/win16/winprocsh.inc

@@ -541,3 +541,48 @@ procedure DrawFocusRect(hdc: HDC; lprc: LPRECT); external 'USER';
 {$ifdef VAR_PARAMS_ARE_FAR}
 procedure DrawFocusRect(hdc: HDC; var rc: RECT); external 'USER';
 {$endif}
+
+{ Text support }
+
+function TextOut(hdc: HDC; nXStart, nYStart: SmallInt; lpszString: LPCSTR; cbString: SmallInt): BOOL; external 'GDI';
+function TabbedTextOut(hdc: HDC; xPosStart, yPosStart: SmallInt; lpszString: LPCSTR; cbString, cTabStops: SmallInt; lpnTabPositions: LPINT; nTabOrigin: SmallInt): LONG; external 'USER';
+{$ifdef VAR_PARAMS_ARE_FAR}
+function TabbedTextOut(hdc: HDC; xPosStart, yPosStart: SmallInt; lpszString: LPCSTR; cbString, cTabStops: SmallInt; var nTabPositions; nTabOrigin: SmallInt): LONG; external 'USER';
+{$endif}
+function ExtTextOut(hdc: HDC; nXStart, nYStart: SmallInt; fuOptions: UINT; lprc: LPRECT; lpszString: LPCSTR; cbString: UINT; lpDx: LPINT): BOOL; external 'GDI';
+
+function GetTextExtent(hdc: HDC; lpszString: LPCSTR; cbString: SmallInt): DWORD; external 'GDI';
+function GetTabbedTextExtent(hdc: HDC; lpszString: LPCSTR; cChars, cTabs: SmallInt; lpnTabs: LPINT): DWORD; external 'USER';
+{$ifdef VAR_PARAMS_ARE_FAR}
+function GetTabbedTextExtent(hdc: HDC; lpszString: LPCSTR; cChars, cTabs: SmallInt; var nTabs): DWORD; external 'USER';
+{$endif}
+
+function DrawText(hdc: HDC; lpsz: LPCSTR; cb: SmallInt; lprc: LPRECT; fuFormat: UINT): SmallInt; external 'USER';
+{$ifdef VAR_PARAMS_ARE_FAR}
+function DrawText(hdc: HDC; lpsz: LPCSTR; cb: SmallInt; var rc: RECT; fuFormat: UINT): SmallInt; external 'USER';
+{$endif}
+
+function GrayString(hdc: HDC; hbr: HBRUSH; gsprc: GRAYSTRINGPROC; lParam: LPARAM; cch, x, y, cx, cy: SmallInt): BOOL; external 'USER';
+function GrayString(hdc: HDC; hbr: HBRUSH; gsprc: TFarProc; lParam: LPARAM; cch, x, y, cx, cy: SmallInt): BOOL; external 'USER';
+
+function GetCharWidth(hdc: HDC; uFirstChar, uLastChar: UINT; lpnWidths: LPINT): BOOL; external 'GDI';
+{$ifdef VAR_PARAMS_ARE_FAR}
+function GetCharWidth(hdc: HDC; uFirstChar, uLastChar: UINT; var nWidths): BOOL; external 'GDI';
+{$endif}
+
+function SetTextColor(hdc: HDC; clrref: COLORREF): COLORREF; external 'GDI';
+function GetTextColor(hdc: HDC): COLORREF; external 'GDI';
+
+function SetBkColor(hdc: HDC; clrref: COLORREF): COLORREF; external 'GDI';
+function GetBkColor(hdc: HDC): COLORREF; external 'GDI';
+
+function SetBkMode(hdc: HDC; fnBkMode: SmallInt): SmallInt; external 'GDI';
+function GetBkMode(hdc: HDC): SmallInt; external 'GDI';
+
+function SetTextAlign(hdc: HDC; fuAlign: UINT): UINT; external 'GDI';
+function GetTextAlign(hdc: HDC): UINT; external 'GDI';
+
+function SetTextCharacterExtra(hdc: HDC; nExtraSpace: SmallInt): SmallInt; external 'GDI';
+function GetTextCharacterExtra(hdc: HDC): SmallInt; external 'GDI';
+
+function SetTextJustification(hdc: HDC; nExtraSpace, cBreakChars: SmallInt): SmallInt; external 'GDI';

+ 39 - 0
rtl/win16/wintypes.inc

@@ -686,3 +686,42 @@ const
 { ExtFloodFill style flags }
   FLOODFILLBORDER  = 0;
   FLOODFILLSURFACE = 1;
+
+{ Text support }
+  ETO_GRAYED  = $0001;
+  ETO_OPAQUE  = $0002;
+  ETO_CLIPPED = $0004;
+
+{ DrawText() Format Flags }
+  DT_TOP             = $0000;
+  DT_LEFT            = $0000;
+  DT_CENTER          = $0001;
+  DT_RIGHT           = $0002;
+  DT_VCENTER         = $0004;
+  DT_BOTTOM          = $0008;
+  DT_WORDBREAK       = $0010;
+  DT_SINGLELINE      = $0020;
+  DT_EXPANDTABS      = $0040;
+  DT_TABSTOP         = $0080;
+  DT_NOCLIP          = $0100;
+  DT_EXTERNALLEADING = $0200;
+  DT_CALCRECT        = $0400;
+  DT_NOPREFIX        = $0800;
+  DT_INTERNAL        = $1000;
+
+{ Background Modes }
+  TRANSPARENT = 1;
+  OPAQUE      = 2;
+
+{ Text Alignment Options }
+  TA_NOUPDATECP = $0000;
+  TA_UPDATECP   = $0001;
+  TA_LEFT       = $0000;
+  TA_RIGHT      = $0002;
+  TA_CENTER     = $0006;
+  TA_TOP        = $0000;
+  TA_BOTTOM     = $0008;
+  TA_BASELINE   = $0018;
+
+type
+  GRAYSTRINGPROC = function(hdc: HDC; lpData: LPARAM; cch: SmallInt): BOOL; far;