请问哪位知道,怎样在VB中获取系统的字体编码,谢谢! 请问哪位知道,怎样在VB中获取系统的字体编码,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Function FontCheck(Idx) As Boolean '這個Function用來檢查字型載入是否發生錯誤 On Error GoTo DowithErrorPicture1.FontName = Screen.Fonts(Idx) FontCheck = True Exit FunctionDowithError: FontCheck = False End Function Private Sub Form_Load() 'Picture1.AutoRedraw要設為 True 喔!! Dim NullPic As New StdPicture '要用來清除Picture1的圖片內容用 Idx = 0 Cdx = 0 Do Until Idx = Screen.FontCount If FontCheck(Idx) = True Then Picture1.Picture = NullPic Picture1.Picture = Picture1.Image '上面兩段是要把Picture1清空 Picture1.CurrentY = 0 Picture1.FontSize = 18 Picture1.FontName = Screen.Fonts(Idx) '把Picture1的字型設定成螢幕字型裡的第 Idx 個 Picture1.Print Screen.Fonts(Idx) Picture1.Picture = Picture1.Image ImageList1.ListImages.Add Cdx + 1, "P" & CStr(Cdx + 1), Picture1.Picture '把圖片與字型名稱加到ImageList裡 Cdx = Cdx + 1 End If Idx = Idx + 1 Loop Set ImageCombo1.ImageList = ImageList1 '設定ImageCombo1使用ImageList裡的圖片 For Idx = 1 To ImageList1.ListImages.Count ImageCombo1.ComboItems.Add , , Screen.Fonts(Idx - 1), "P" & CStr(Idx) If ImageCombo1.ComboItems(Idx).Text = Me.FontName Then RecIdx = Idx '檢查目前的字型是否為表單字型,若是,則記下索引位置 Next ImageCombo1.ComboItems(RecIdx).Selected = True '再把預設值設成表單字型 End Sub 上面也是imagecombol的用法楼主下次不要发三帖,转到控件版面吧 运行时改变字体的操作方法 虽然有上述选项,这些解决方法仍有限制。下面的示例是应用程序在运行时,使用全局解决方法改变其中的字体。下面的代码可在 Windows 的任何语言版本上运行,它决定驻留在系统中的字体,应用程序将在该系统下运行,将适当的字体应用到参数中指定的 Font 对象。 Private Const DEFAULT_CHARSET = 1 Private Const SYMBOL_CHARSET = 2 Private Const SHIFTJIS_CHARSET = 128 Private Const HANGEUL_CHARSET = 129 Private Const CHINESEBIG5_CHARSET = 136 Private Const CHINESESIMPLIFIED_CHARSET = 134 Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long Public Sub SetProperFont(obj As Object) On Error GoTo ErrorSetProperFont Select Case GetUserDefaultLCID Case &H404 ' 繁体中文 obj.Charset = CHINESEBIG5_CHARSET obj.Name = ChrW(&H65B0) + ChrW(&H7D30) + ChrW(&H660E) _ + ChrW(&H9AD4) 'New Ming-Li obj.Size = 9 Case &H411 ' 日语 obj.Charset = SHIFTJIS_CHARSET obj.Name = ChrW(&HFF2D) + ChrW(&HFF33) + ChrW(&H20) + _ ChrW(&HFF30) + ChrW(&H30B4) + ChrW(&H30B7) + ChrW(&H30C3) + _ ChrW(&H30AF) obj.Size = 9 Case &H412 '朝鲜 UserLCID obj.Charset = HANGEUL_CHARSET obj.Name = ChrW(&HAD74) + ChrW(&HB9BC) obj.Size = 9 Case &H804 ' 简体中文 obj.Charset = CHINESESIMPLIFIED_CHARSET obj.Name = ChrW(&H5B8B) + ChrW(&H4F53) obj.Size = 9 Case Else ' 其他国家/地区 obj.Charset = DEFAULT_CHARSET obj.Name = "" ' 获得缺省 UI 字体。 obj.Size = 8 End Select Exit Sub ErrorSetProperFont: Err.Number = Err 也可更改这个简单的示例代码将字体应用到其它字体设置上,如打印选项。 具体见:http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=195508 利用VB Winsock1怎么发送十六制数据? 实现vb打开网页后,5秒种关闭自己的代码。高人指教! 郁闷啊,VB Run-time error '53'(在线等) 调用Excel做好的模板做打印时怎样实现不同数据的多份打印 怎么用VB代码实现DTS快速导数据 vb中如何内嵌汇编 VB与Excel的导入与导出问题? 图像二值化处理 如何使窗口半透明? 十万火急。向各位高手求助一报表打印方案??? spread的2个问题!在线等哈 如何实现类似QQ的界面?
'這個Function用來檢查字型載入是否發生錯誤
On Error GoTo DowithErrorPicture1.FontName = Screen.Fonts(Idx)
FontCheck = True
Exit Function
DowithError:
FontCheck = False
End Function
Private Sub Form_Load()
'Picture1.AutoRedraw要設為 True 喔!!
Dim NullPic As New StdPicture
'要用來清除Picture1的圖片內容用
Idx = 0
Cdx = 0
Do Until Idx = Screen.FontCount
If FontCheck(Idx) = True Then
Picture1.Picture = NullPic
Picture1.Picture = Picture1.Image
'上面兩段是要把Picture1清空
Picture1.CurrentY = 0
Picture1.FontSize = 18
Picture1.FontName = Screen.Fonts(Idx)
'把Picture1的字型設定成螢幕字型裡的第 Idx 個
Picture1.Print Screen.Fonts(Idx)
Picture1.Picture = Picture1.Image
ImageList1.ListImages.Add Cdx + 1, "P" & CStr(Cdx + 1), Picture1.Picture
'把圖片與字型名稱加到ImageList裡
Cdx = Cdx + 1
End If
Idx = Idx + 1
Loop
Set ImageCombo1.ImageList = ImageList1
'設定ImageCombo1使用ImageList裡的圖片
For Idx = 1 To ImageList1.ListImages.Count
ImageCombo1.ComboItems.Add , , Screen.Fonts(Idx - 1), "P" & CStr(Idx)
If ImageCombo1.ComboItems(Idx).Text = Me.FontName Then RecIdx = Idx
'檢查目前的字型是否為表單字型,若是,則記下索引位置
Next
ImageCombo1.ComboItems(RecIdx).Selected = True
'再把預設值設成表單字型
End Sub
虽然有上述选项,这些解决方法仍有限制。下面的示例是应用程序在运行时,使用全局解决方法改变其中的字体。下面的代码可在 Windows 的任何语言版本上运行,它决定驻留在系统中的字体,应用程序将在该系统下运行,将适当的字体应用到参数中指定的 Font 对象。
Private Const DEFAULT_CHARSET = 1
Private Const SYMBOL_CHARSET = 2
Private Const SHIFTJIS_CHARSET = 128
Private Const HANGEUL_CHARSET = 129
Private Const CHINESEBIG5_CHARSET = 136
Private Const CHINESESIMPLIFIED_CHARSET = 134
Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long
Public Sub SetProperFont(obj As Object)
On Error GoTo ErrorSetProperFont
Select Case GetUserDefaultLCID
Case &H404 ' 繁体中文
obj.Charset = CHINESEBIG5_CHARSET
obj.Name = ChrW(&H65B0) + ChrW(&H7D30) + ChrW(&H660E) _
+ ChrW(&H9AD4) 'New Ming-Li
obj.Size = 9
Case &H411 ' 日语
obj.Charset = SHIFTJIS_CHARSET
obj.Name = ChrW(&HFF2D) + ChrW(&HFF33) + ChrW(&H20) + _
ChrW(&HFF30) + ChrW(&H30B4) + ChrW(&H30B7) + ChrW(&H30C3) + _
ChrW(&H30AF)
obj.Size = 9
Case &H412 '朝鲜 UserLCID
obj.Charset = HANGEUL_CHARSET
obj.Name = ChrW(&HAD74) + ChrW(&HB9BC)
obj.Size = 9
Case &H804 ' 简体中文
obj.Charset = CHINESESIMPLIFIED_CHARSET
obj.Name = ChrW(&H5B8B) + ChrW(&H4F53)
obj.Size = 9
Case Else ' 其他国家/地区
obj.Charset = DEFAULT_CHARSET
obj.Name = "" ' 获得缺省 UI 字体。
obj.Size = 8
End Select
Exit Sub
ErrorSetProperFont:
Err.Number = Err
也可更改这个简单的示例代码将字体应用到其它字体设置上,如打印选项。 具体见:http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=195508