susan110622 2014-12-21 04:16 采纳率: 0%
浏览 2990

如何在VB6.0中用代码加载系统字体

就是通过组合框能够把系统中的字体全部加载出来,不知道是要用什么代码!

  • 写回答

4条回答 默认 最新

  • threenewbee 2014-12-21 04:22
    关注
    Option Explicit
    
     Private Sub Form_Load()
       Module1.FillComboWithFonts Combo1
     End Sub 
    
     Add a module, Module1, to the project and add the following code to the module. 
    
    Option Explicit
    
     'Font enumeration types
     Public Const LF_FACESIZE = 32
     Public Const LF_FULLFACESIZE = 64
    
     Type LOGFONT
       lfHeight As Long
       lfWidth As Long
       lfEscapement As Long
       lfOrientation As Long
       lfWeight As Long
       lfItalic As Byte
       lfUnderline As Byte
       lfStrikeOut As Byte
       lfCharSet As Byte
       lfOutPrecision As Byte
       lfClipPrecision As Byte
       lfQuality As Byte
       lfPitchAndFamily As Byte
    
       lfFaceName(LF_FACESIZE) As Byte
     End Type
    
     Type NEWTEXTMETRIC
       tmHeight As Long
       tmAscent As Long
       tmDescent As Long
       tmInternalLeading As Long
       tmExternalLeading As Long
       tmAveCharWidth As Long
       tmMaxCharWidth As Long
       tmWeight As Long
       tmOverhang As Long
       tmDigitizedAspectX As Long
       tmDigitizedAspectY As Long
       tmFirstChar As Byte
       tmLastChar As Byte
       tmDefaultChar As Byte
    
       tmBreakChar As Byte
       tmItalic As Byte
       tmUnderlined As Byte
       tmStruckOut As Byte
       tmPitchAndFamily As Byte
       tmCharSet As Byte
       ntmFlags As Long
       ntmSizeEM As Long
       ntmCellHeight As Long
       ntmAveWidth As Long
     End Type
    
     ' ntmFlags field flags
     Public Const NTM_REGULAR = &H40&
     Public Const NTM_BOLD = &H20&
     Public Const NTM_ITALIC = &H1&
    
     ' tmPitchAndFamily flags
     Public Const TMPF_FIXED_PITCH = &H1
    
     Public Const TMPF_VECTOR = &H2
     Public Const TMPF_DEVICE = &H8
     Public Const TMPF_TRUETYPE = &H4
    
     Public Const ELF_VERSION = 0
     Public Const ELF_CULTURE_LATIN = 0
    
     ' EnumFonts Masks
     Public Const RASTER_FONTTYPE = &H1
     Public Const DEVICE_FONTTYPE = &H2
     Public Const TRUETYPE_FONTTYPE = &H4
    
     Declare Function EnumFontFamilies Lib "gdi32" Alias _
        "EnumFontFamiliesA" _
        (ByVal hDC As Long, ByVal lpszFamily As String, _
        ByVal lpEnumFontFamProc As Long, LParam As Any) As Long Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, _
        ByVal hDC As Long) As Long
    
     Function EnumFontFamProc(lpNLF As LOGFONT, lpNTM As NEWTEXTMETRIC, _
        ByVal FontType As Long, LParam As ListBox) As Long
     Dim FaceName As String
     Dim FullName As String
       FaceName = StrConv(lpNLF.lfFaceName, vbUnicode)
       LParam.AddItem Left$(FaceName, InStr(FaceName, vbNullChar) - 1)
       EnumFontFamProc = 1
    
     End Function
    
     Sub FillComboWithFonts(CB As ComboBox)
     Dim hDC As Long
       CB.Clear
       hDC = GetDC(CB.hWnd)
       EnumFontFamilies hDC, vbNullString, AddressOf EnumFontFamProc, CB
       ReleaseDC CB.hWnd, hDC
     End Sub  
    
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)