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 / fontview.bas < prev    next >
Encoding:
BASIC Source File  |  1997-02-16  |  7.7 KB  |  256 lines

  1. Attribute VB_Name = "FONTVIEW1"
  2. ' FontView Sample Application
  3. ' Copyright (c) 1995-1997, by Desaware Inc. All Rights Reserved
  4.  
  5. Option Explicit
  6.  
  7. Public Const OUT_DEFAULT_PRECIS = 0
  8. Public Const OUT_STRING_PRECIS = 1
  9. Public Const OUT_CHARACTER_PRECIS = 2
  10. Public Const OUT_STROKE_PRECIS = 3
  11. Public Const OUT_TT_PRECIS = 4
  12. Public Const OUT_DEVICE_PRECIS = 5
  13. Public Const OUT_RASTER_PRECIS = 6
  14. Public Const OUT_TT_ONLY_PRECIS = 7
  15. Public Const CLIP_DEFAULT_PRECIS = 0
  16. Public Const CLIP_CHARACTER_PRECIS = 1
  17. Public Const CLIP_STROKE_PRECIS = 2
  18. Public Const CLIP_LH_ANGLES = &H10
  19. Public Const CLIP_TT_ALWAYS = &H20
  20. Public Const CLIP_EMBEDDED = &H80
  21. Public Const DEFAULT_QUALITY = 0
  22. Public Const DRAFT_QUALITY = 1
  23. Public Const PROOF_QUALITY = 2
  24. Public Const DEFAULT_PITCH = 0
  25. Public Const FIXED_PITCH = 1
  26. Public Const VARIABLE_PITCH = 2
  27. Public Const TMPF_FIXED_PITCH = 1
  28. Public Const TMPF_VECTOR = 2
  29. Public Const TMPF_DEVICE = 8
  30. Public Const TMPF_TRUETYPE = 4
  31. Public Const ANSI_CHARSET = 0
  32. Public Const DEFAULT_CHARSET = 1
  33. Public Const SYMBOL_CHARSET = 2
  34. Public Const SHIFTJIS_CHARSET = 128
  35. Public Const OEM_CHARSET = 255
  36. Public Const NTM_REGULAR = &H40&
  37. Public Const NTM_BOLD = &H20&
  38. Public Const NTM_ITALIC = &H1&
  39. Public Const LF_FULLFACESIZE = 64
  40. Public Const RASTER_FONTTYPE = 1
  41. Public Const DEVICE_FONTTYPE = 2
  42. Public Const TRUETYPE_FONTTYPE = 4
  43. Public Const FF_DONTCARE = 0
  44. Public Const FF_ROMAN = 16
  45. Public Const FF_SWISS = 32
  46. Public Const FF_MODERN = 48
  47. Public Const FF_SCRIPT = 64
  48. Public Const FF_DECORATIVE = 80
  49. Public Const FW_DONTCARE = 0
  50. Public Const FW_THIN = 100
  51. Public Const FW_EXTRALIGHT = 200
  52. Public Const FW_LIGHT = 300
  53. Public Const FW_NORMAL = 400
  54. Public Const FW_MEDIUM = 500
  55. Public Const FW_SEMIBOLD = 600
  56. Public Const FW_BOLD = 700
  57. Public Const FW_EXTRABOLD = 800
  58. Public Const FW_HEAVY = 900
  59. Public Const FW_ULTRALIGHT = FW_EXTRALIGHT
  60. Public Const FW_REGULAR = FW_NORMAL
  61. Public Const FW_DEMIBOLD = FW_SEMIBOLD
  62. Public Const FW_ULTRABOLD = FW_EXTRABOLD
  63. Public Const FW_BLACK = FW_HEAVY
  64. Public Const LF_FACESIZE = 32
  65. Public Const GCP_DBCS = &H1
  66. Public Const GCP_REORDER = &H2
  67. Public Const GCP_USEKERNING = &H8
  68. Public Const GCP_GLYPHSHAPE = &H10
  69. Public Const GCP_LIGATE = &H20
  70. Public Const GCP_DIACRITIC = &H100
  71. Public Const GCP_KASHIDA = &H400
  72. Public Const GCP_ERROR = &H8000
  73. Public Const FLI_MASK = &H103B
  74. Public Const GCP_JUSTIFY = &H10000
  75. Public Const GCP_NODIACRITICS = &H20000
  76. Public Const FLI_GLYPHS = &H40000
  77.  
  78. ' Public Variables
  79.  
  80. #If Win32 Then
  81. Public FontToUse& ' The font in use
  82. #Else
  83. Public FontToUse% ' The font in use
  84. #End If
  85.  
  86.  
  87. #If Win32 Then
  88. Type LOGFONT
  89.         lfHeight As Long
  90.         lfWidth As Long
  91.         lfEscapement As Long
  92.         lfOrientation As Long
  93.         lfWeight As Long
  94.         lfItalic As Byte
  95.         lfUnderline As Byte
  96.         lfStrikeOut As Byte
  97.         lfCharSet As Byte
  98.         lfOutPrecision As Byte
  99.         lfClipPrecision As Byte
  100.         lfQuality As Byte
  101.         lfPitchAndFamily As Byte
  102.         lfFaceName(LF_FACESIZE) As Byte
  103. End Type
  104.  
  105. Type RECT
  106.         Left As Long
  107.         Top As Long
  108.         Right As Long
  109.         Bottom As Long
  110. End Type
  111.  
  112. Type TEXTMETRIC
  113.         tmHeight As Long
  114.         tmAscent As Long
  115.         tmDescent As Long
  116.         tmInternalLeading As Long
  117.         tmExternalLeading As Long
  118.         tmAveCharWidth As Long
  119.         tmMaxCharWidth As Long
  120.         tmWeight As Long
  121.         tmOverhang As Long
  122.         tmDigitizedAspectX As Long
  123.         tmDigitizedAspectY As Long
  124.         tmFirstChar As Byte
  125.         tmLastChar As Byte
  126.         tmDefaultChar As Byte
  127.         tmBreakChar As Byte
  128.         tmItalic As Byte
  129.         tmUnderlined As Byte
  130.         tmStruckOut As Byte
  131.         tmPitchAndFamily As Byte
  132.         tmCharSet As Byte
  133. End Type
  134.  
  135. Type NEWTEXTMETRIC
  136.         tmHeight As Long
  137.         tmAscent As Long
  138.         tmDescent As Long
  139.         tmInternalLeading As Long
  140.         tmExternalLeading As Long
  141.         tmAveCharWidth As Long
  142.         tmMaxCharWidth As Long
  143.         tmWeight As Long
  144.         tmOverhang As Long
  145.         tmDigitizedAspectX As Long
  146.         tmDigitizedAspectY As Long
  147.         tmFirstChar As Byte
  148.         tmLastChar As Byte
  149.         tmDefaultChar As Byte
  150.         tmBreakChar As Byte
  151.         tmItalic As Byte
  152.         tmUnderlined As Byte
  153.         tmStruckOut As Byte
  154.         tmPitchAndFamily As Byte
  155.         tmCharSet As Byte
  156.         ntmFlags As Long
  157.         ntmSizeEM As Long
  158.         ntmCellHeight As Long
  159.         ntmAveWidth As Long
  160. End Type
  161.  
  162. Declare Function CreateFontIndirect& Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT)
  163. Declare Function SelectObject& Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long)
  164. Declare Function GetClientRect& Lib "user32" (ByVal hwnd As Long, lpRect As RECT)
  165. Declare Function GetTextMetrics& Lib "gdi32" Alias "GetTextMetricsA" (ByVal hdc As Long, lpMetrics As TEXTMETRIC)
  166. Declare Function GetTextFace& Lib "gdi32" Alias "GetTextFaceA" (ByVal hdc As Long, ByVal nCount As Long, ByVal lpFacename As String)
  167. Declare Function DeleteObject& Lib "gdi32" (ByVal hObject As Long)
  168. 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) As Long
  169. Declare Function GetFontLanguageInfo& Lib "gdi32" (ByVal hdc As Long)
  170.  
  171. #Else
  172. Declare Function GetClientRect% Lib "User" (ByVal hwnd%, lpRect As RECT)
  173. Declare Function CreateFontIndirect% Lib "GDI" (lpLogFont As LOGFONT)
  174. Declare Function SelectObject% Lib "GDI" (ByVal hdc%, ByVal hObject%)
  175. Declare Function GetTextMetrics% Lib "GDI" (ByVal hdc%, lpMetrics As TEXTMETRIC)
  176. Declare Function GetTextFace% Lib "GDI" (ByVal hdc%, ByVal nCount%, ByVal lpFacename$)
  177. Declare Function DeleteObject% Lib "GDI" (ByVal hObject%)
  178. Declare Function TextOut% Lib "GDI" (ByVal hdc%, ByVal x%, ByVal y%, ByVal lpstring$, ByVal nCount%)
  179.  
  180. ' Port this to bytes for VB4
  181. Type LOGFONT   ' 50 Bytes
  182.     lfHeight As Integer
  183.     lfWidth As Integer
  184.     lfEscapement As Integer
  185.     lfOrientation As Integer
  186.     lfWeight As Integer
  187.     lfItalic As Byte
  188.     lfUnderline As Byte
  189.     lfStrikeOut As Byte
  190.     lfCharSet As Byte
  191.     lfOutPrecision As Byte
  192.     lfClipPrecision As Byte
  193.     lfQuality As Byte
  194.     lfPitchAndFamily As Byte
  195.     lfFaceName(LF_FACESIZE) As Byte
  196. End Type
  197.  
  198. Type RECT   '8 Bytes
  199.     Left As Integer
  200.     Top As Integer
  201.     Right As Integer
  202.     Bottom As Integer
  203. End Type
  204.  
  205. Type TEXTMETRIC   '31 Bytes
  206.     tmHeight As Integer
  207.     tmAscent As Integer
  208.     tmDescent As Integer
  209.     tmInternalLeading As Integer
  210.     tmExternalLeading As Integer
  211.     tmAveCharWidth As Integer
  212.     tmMaxCharWidth As Integer
  213.     tmWeight As Integer
  214.     tmItalic As Byte
  215.     tmUnderlined As Byte
  216.     tmStruckOut As Byte
  217.     tmFirstChar As Byte
  218.     tmLastChar As Byte
  219.     tmDefaultChar As Byte
  220.     tmBreakChar As Byte
  221.     tmPitchAndFamily As Byte
  222.     tmCharSet As Byte
  223.     tmOverhang As Integer
  224.     tmDigitizedAspectX As Integer
  225.     tmDigitizedAspectY As Integer
  226. End Type
  227.  
  228. Type NEWTEXTMETRIC   '41 Bytes
  229.     tmHeight As Integer
  230.     tmAscent As Integer
  231.     tmDescent As Integer
  232.     tmInternalLeading As Integer
  233.     tmExternalLeading As Integer
  234.     tmAveCharWidth As Integer
  235.     tmMaxCharWidth As Integer
  236.     tmWeight As Integer
  237.     tmItalic As Byte
  238.     tmUnderlined As Byte
  239.     tmStruckOut As Byte
  240.     tmFirstChar As Byte
  241.     tmLastChar As Byte
  242.     tmDefaultChar As Byte
  243.     tmBreakChar As Byte
  244.     tmPitchAndFamily As Byte
  245.     tmCharSet As Byte
  246.     tmOverhang As Integer
  247.     tmDigitizedAspectX As Integer
  248.     tmDigitizedAspectY As Integer
  249.    ntmFlags As Long
  250.    ntmSizeEM As Integer
  251.    ntmCellHeight As Integer
  252.    ntmAvgWidth As Integer
  253. End Type
  254.  
  255. #End If
  256.