当我的程序中一使用CommonDialog.ShowFont时,系统就会提示出错“没有安装字体,请从控制面板打开"字体"文件夹以便安装字体”,而我的该文件夹里确已有几十种字体了,请教各位这应如何解决?

解决方案 »

  1.   

    1,你用其他软件打开选择字体对话框看看,比如记事本,如果没有问题,请重新安装vb或打SP6补丁
    2,如果上述有问题,那就是系统问题,请删除font的所有字体,利用文件菜单里的“安装新字体”重新安装
      

  2.   

    在使用 ShowFont 方法前,必须先设置 CommonDialog 控件的 Flags 属性为下列三个常数或值中的一个: cdlCFBoth 或 &H3, cdlCFPrinterFonts 或 &H2, 以及 cdlCFScreenFonts 或 &H1。如果不置 Flags,将会显示一个信息框,提示“没有安装的字体。”并产生一个运行时错误。
      

  3.   

    eg:
    Private Sub Command1_Click()
    ComDlg.Flags = cdlCFBoth
    ComDlg.ShowFont
    End Sub
    来自Msdn:
    Flags 属性(“字体”对话框)
    语法object.Flags [= value]Flags 属性语法有下列部分:部分 描述 
    object 对象表达式,其值是“应用于”列表中的对象。 
    value 如“设置值”中所描述,它为“字体”对话框指定选项的常数或值。 
    设置值value 的设置是:常数  值  描述 
    cdlCFANSIOnly  &H400  它指定对话框只允许选择 Windows 字符集的字体。如果该标志被设置,就不能选择仅含符号的字体。 
    cdlCFApply  &H200  它使对话框中的“应用”按钮有效。 
    cdlCFBoth  &H3  使对话框列出可用的打印机和屏幕字体。hDC 属性标识与打印机相关的设备描述体。 
    cdlCFEffects  &H100  它指定对话框允许删除线,下划线,以及颜色效果。  
    cdlCFFixedPitchOnly  &H4000  它指定对话框只能选择固定间距的字体。 
    cdlCFForceFontExist  &H10000  它指定如果用户试图选择一个并不存在的字体或样式,显示错误信息框。 
    cdlCFHelpButton  &H4  使对话框显示帮助按钮。  
    cdlCF例mitSize  &H2000  它指定对话框只能在由 Min 和 Max 属性规定的范围内选择字体大小。 
    cdlCFNoFaceSel  &H80000  没有选择字体名称。 
    cdlCFNoSimulations  &H1000  它指定对话框不允许图形设备接口 (GDI) 字体模拟。 
    cdlCFNoSizeSel  &H200000  没有选择字体大小。 
    cdlCFNoStyleSel  &H100000  没有选择样式。 
    cdlCFNoVectorFonts &H800 它指定对话框不允许矢量字体选择。 
    cdlCFPrinterFonts &H2 使对话框只列出由 hDC 属性指定的打印机支持的字体。 
    cdlCFScalableOnly &H20000 它指定对话框只允许选择可缩放的字体。 
    cdlCFScreenFonts &H1 使对话框只列出系统支持的屏幕字体。 
    cdlCFTTOnly &H40000 它指定对话框只允许选择 TrueType 型字体。 
    cdlCFWYSIWYG &H8000 它指定对话框只允许选择在打印机和屏幕上均可用的字体。如果该标志被设置,则 cdlCFBoth 和 cdlCFScalableOnly 标志也应该设置。 
    说明这些常数在对象浏览器中的 Microsoft CommonDialog 控件 (MSComDlg) 对象库中列出。也可以定义所选择的标志。可使用启动窗体声明部分的 Const 关键字来定义想使用的标志。例如:Const ReadOnly  = &H00000001&
    Const Effects    = &H00000100&使用 Or 运算符可以为一个对话框设置多个标志。例如:CommonDialog1.Flags = &H10& Or &H200&将所希望的常数值相加能产生同样的结果。下例与上例等效:CommonDialog1.Flags = &H210&注意 在显示“字体”对话框前,必须先将 Flags 属性设置为 cdlCFScreenFonts,cdlCFPrinterFonts,或 cdlCFBoth。否则,会发生字体不存在的错误。数据类型Long