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 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘