home *** CD-ROM | disk | FTP | other *** search
/ Dan Appleman's Visual Bas…s Guide to the Win32 API / Dan.Applmans.Visual.Basic.5.0.Programmers.Guide.To.The.Win32.API.1997.Ziff-Davis.Press.CD / VB5PG32.mdf / vbpg32 / samples5 / ch11 / textdemo.bas < prev    next >
Encoding:
BASIC Source File  |  1997-02-16  |  6.4 KB  |  198 lines

  1. Attribute VB_Name = "TEXTDEMO1"
  2. ' TextDemo.BAS
  3. '
  4. Option Explicit
  5. ' Copyright ⌐ 1997 by Desaware Inc. All Rights Reserved.
  6.  
  7. Public Const OEM_FIXED_FONT = 10
  8. Public Const ANSI_FIXED_FONT = 11
  9. Public Const ANSI_VAR_FONT = 12
  10. Public Const SYSTEM_FONT = 13
  11. Public Const DEVICE_DEFAULT_FONT = 14
  12. Public Const DEFAULT_PALETTE = 15
  13. Public Const SYSTEM_FIXED_FONT = 16
  14.  
  15. Public Const OUT_DEFAULT_PRECIS = 0
  16. Public Const OUT_STRING_PRECIS = 1
  17. Public Const OUT_CHARACTER_PRECIS = 2
  18. Public Const OUT_STROKE_PRECIS = 3
  19. Public Const OUT_TT_PRECIS = 4
  20. Public Const OUT_DEVICE_PRECIS = 5
  21. Public Const OUT_RASTER_PRECIS = 6
  22. Public Const OUT_TT_ONLY_PRECIS = 7
  23. Public Const CLIP_DEFAULT_PRECIS = 0
  24. Public Const CLIP_CHARACTER_PRECIS = 1
  25. Public Const CLIP_STROKE_PRECIS = 2
  26. Public Const CLIP_LH_ANGLES = &H10
  27. Public Const CLIP_TT_ALWAYS = &H20
  28. Public Const CLIP_EMBEDDED = &H80
  29. Public Const DEFAULT_QUALITY = 0
  30. Public Const DRAFT_QUALITY = 1
  31. Public Const PROOF_QUALITY = 2
  32. Public Const DEFAULT_PITCH = 0
  33. Public Const FIXED_PITCH = 1
  34. Public Const VARIABLE_PITCH = 2
  35. Public Const TMPF_FIXED_PITCH = 1
  36. Public Const TMPF_VECTOR = 2
  37. Public Const TMPF_DEVICE = 8
  38. Public Const TMPF_TRUETYPE = 4
  39. Public Const ANSI_CHARSET = 0
  40. Public Const SYMBOL_CHARSET = 2
  41. Public Const SHIFTJIS_CHARSET = 128
  42. Public Const OEM_CHARSET = 255
  43. Public Const NTM_REGULAR = &H40&
  44. Public Const NTM_BOLD = &H20&
  45. Public Const NTM_ITALIC = &H1&
  46. Public Const LF_FULLFACESIZE = 64
  47. Public Const RASTER_FONTTYPE = 1
  48. Public Const DEVICE_FONTTYPE = 2
  49. Public Const TRUETYPE_FONTTYPE = 4
  50. Public Const FF_DONTCARE = 0
  51. Public Const FF_ROMAN = 16
  52. Public Const FF_SWISS = 32
  53. Public Const FF_MODERN = 48
  54. Public Const FF_SCRIPT = 64
  55. Public Const FF_DECORATIVE = 80
  56. Public Const FW_DONTCARE = 0
  57. Public Const FW_THIN = 100
  58. Public Const FW_EXTRALIGHT = 200
  59. Public Const FW_LIGHT = 300
  60. Public Const FW_NORMAL = 400
  61. Public Const FW_MEDIUM = 500
  62. Public Const FW_SEMIBOLD = 600
  63. Public Const FW_BOLD = 700
  64. Public Const FW_EXTRABOLD = 800
  65. Public Const FW_HEAVY = 900
  66. Public Const FW_ULTRALIGHT = FW_EXTRALIGHT
  67. Public Const FW_REGULAR = FW_NORMAL
  68. Public Const FW_DEMIBOLD = FW_SEMIBOLD
  69. Public Const FW_ULTRABOLD = FW_EXTRABOLD
  70. Public Const FW_BLACK = FW_HEAVY
  71.  
  72. Public Const TA_NOUPDATECP = 0
  73. Public Const TA_UPDATECP = 1
  74. Public Const TA_LEFT = 0
  75. Public Const TA_RIGHT = 2
  76. Public Const TA_CENTER = 6
  77. Public Const TA_TOP = 0
  78. Public Const TA_BOTTOM = 8
  79. Public Const TA_BASELINE = 24
  80.  
  81. Public Const DT_TOP = &H0
  82. Public Const DT_LEFT = &H0
  83. Public Const DT_CENTER = &H1
  84. Public Const DT_RIGHT = &H2
  85. Public Const DT_VCENTER = &H4
  86. Public Const DT_BOTTOM = &H8
  87. Public Const DT_WORDBREAK = &H10
  88. Public Const DT_SINGLELINE = &H20
  89. Public Const DT_EXPANDTABS = &H40
  90. Public Const DT_TABSTOP = &H80
  91. Public Const DT_NOCLIP = &H100
  92. Public Const DT_EXTERNALLEADING = &H200
  93. Public Const DT_CALCRECT = &H400
  94. Public Const DT_NOPREFIX = &H800
  95. Public Const DT_INTERNAL = &H1000
  96. Public Const LF_FACESIZE = 32
  97.  
  98.  
  99. ' Public Variables
  100.  
  101.  
  102. #If Win32 Then
  103. Public FontToUse& ' The font in use
  104. #Else
  105. Public FontToUse% ' The font in use
  106. #End If
  107.  
  108. #If Win32 Then
  109. Type LOGFONT
  110.         lfHeight As Long
  111.         lfWidth As Long
  112.         lfEscapement As Long
  113.         lfOrientation As Long
  114.         lfWeight As Long
  115.         lfItalic As Byte
  116.         lfUnderline As Byte
  117.         lfStrikeOut As Byte
  118.         lfCharSet As Byte
  119.         lfOutPrecision As Byte
  120.         lfClipPrecision As Byte
  121.         lfQuality As Byte
  122.         lfPitchAndFamily As Byte
  123.         lfFaceName(LF_FACESIZE) As Byte
  124. End Type
  125.  
  126. Type RECT
  127.         Left As Long
  128.         Top As Long
  129.         Right As Long
  130.         Bottom As Long
  131. End Type
  132.  
  133.  
  134. Type POINTAPI
  135.         x As Long
  136.         y As Long
  137. End Type
  138.  
  139. Declare Function CreateFontIndirect& Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT)
  140. Declare Function SelectObject& Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long)
  141. Declare Function GetClientRect& Lib "user32" (ByVal hWnd As Long, lpRect As RECT)
  142. Declare Function GetTextFace& Lib "gdi32" Alias "GetTextFaceA" (ByVal hDC As Long, ByVal nCount As Long, ByVal lpFacename As String)
  143. Declare Function DeleteObject& Lib "gdi32" (ByVal hObject As Long)
  144. Declare Function TextOut& Lib "gdi32" Alias "TextOutA" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long)
  145. Declare Function SetTextAlign& Lib "gdi32" (ByVal hDC As Long, ByVal wFlags As Long)
  146. Declare Function MoveToEx& Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, lpPoint As POINTAPI)
  147. Declare Function GetStockObject& Lib "gdi32" (ByVal nIndex As Long)
  148. Declare Function GetObjectAPI Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
  149. Declare Function DrawText& Lib "user32" Alias "DrawTextA" (ByVal hDC As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long)
  150.  
  151. #Else
  152. Declare Function GetClientRect% Lib "User" (ByVal hWnd%, lpRect As RECT)
  153. Declare Function CreateFontIndirect% Lib "GDI" (lpLogFont As LOGFONT)
  154. Declare Function SelectObject% Lib "GDI" (ByVal hDC%, ByVal hObject%)
  155. Declare Function GetTextFace% Lib "GDI" (ByVal hDC%, ByVal nCount%, ByVal lpFacename$)
  156. Declare Function DeleteObject% Lib "GDI" (ByVal hObject%)
  157. Declare Function TextOut% Lib "GDI" (ByVal hDC%, ByVal x%, ByVal y%, ByVal lpString$, ByVal nCount%)
  158. Declare Function SetTextAlign% Lib "GDI" (ByVal hDC%, ByVal wFlags%)
  159. Declare Function MoveToEx% Lib "GDI" (ByVal hDC%, ByVal nX%, ByVal nY%, lpPoint As POINTAPI)
  160. Declare Function GetStockObject% Lib "GDI" (ByVal nIndex%)
  161. Declare Function GetObjectAPI% Lib "GDI" Alias "GetObject" (ByVal hObject%, ByVal nCount%, lpObject As Any)
  162. Declare Function DrawText% Lib "User" (ByVal hDC%, ByVal lpStr$, ByVal nCount%, lpRect As RECT, ByVal wFormat%)
  163.  
  164. ' Port this to bytes for VB4
  165. Type LOGFONT   ' 50 Bytes
  166.     lfHeight As Integer
  167.     lfWidth As Integer
  168.     lfEscapement As Integer
  169.     lfOrientation As Integer
  170.     lfWeight As Integer
  171.     lfItalic As Byte
  172.     lfUnderline As Byte
  173.     lfStrikeOut As Byte
  174.     lfCharSet As Byte
  175.     lfOutPrecision As Byte
  176.     lfClipPrecision As Byte
  177.     lfQuality As Byte
  178.     lfPitchAndFamily As Byte
  179.     lfFaceName(LF_FACESIZE - 1) As Byte
  180. End Type
  181.  
  182. Type RECT   '8 Bytes
  183.     Left As Integer
  184.     Top As Integer
  185.     Right As Integer
  186.     Bottom As Integer
  187. End Type
  188.  
  189.  
  190. Type POINTAPI  '4 Bytes - Synonymous with LONG
  191.     x As Integer
  192.     y As Integer
  193. End Type
  194.  
  195. #End If
  196.  
  197.  
  198.