VB调用自制字体
我这里有一个C#的例子,请问如何在VB中实现啊。

我们写exe程序时,默认字体是宋体,比较难看,指定了其他字体,但是其他用户上没有你指定的这个字体的话,也会变成默认的宋体。解决的办法有这么几个:
            1,叫用户安装相应字体,这个基本不可能实现,因为没有几个人会进行这样的操作;
  2,给用户安装相应字体,这个办法可行,在制作安装包时将字体打包进去,然后用户安装程序的时候连字体也一并安装上去,一劳永逸;
            3,把字体导入到程序资源中,让程序直接调用字体资源,缺点是导致程序体积巨大;
            4,将字体文件放到程序目录里,在程序里单独调用。
            个人觉得第4种办法比较方便,所以决定采用这种方法,把代码写出来给需要的同学。
            引用:
            using System.Drawing.Text;
            public void Setfont()
                    {
                     string AppPath = Application.StartupPath;
                        try
                        {
                            PrivateFontCollection font = new 
            PrivateFontCollection();
                            font.AddFontFile(AppPath + 
            @"\font\msyh.ttf");//字体的路径及名字 
                            Font myFont = new Font(font.Families[0].Name, 
            9F,FontStyle.Regular,GraphicsUnit.Point, ((byte)(134)));
                            //设置窗体控件字体,哪些控件要更改都写到下面
                            label1.Font = myFont;
                            label2.Font = myFont;
                            label3.Font = myFont;
                            button1.Font = myFont;
                            button2.Font = myFont;
                            button3.Font = myFont;
                            button4.Font = myFont;
                            button5.Font = myFont;
                        }
                        catch
                        { 
                            MessageBox.Show("字体不存在或加载失败\n程序将以默认字体显示", "警告", 
            MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        }
                    }
             
            然后在public Form1()
                    { 
                        InitializeComponent();
                        Setfont();//启动字体设置函数
                   }

感谢各位了。

------解决方案--------------------
AddFontResource(App.path & "\She\DllList\A.TTF")
Call SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0)

这两句加到窗体显示之前就行了

VB调用自持字体的更多相关文章

  1. vb调用exe文件

    vb调用exe文件 函数:Call Shell(PathName,WindowStyle) 或 a = Shell(PathName,WindowStyle) ,不需要声明. 注解:PathName ...

  2. VB 调用动态链接库

    作为一种简单易用的Windows开发环境,Visual Basic从一推出就受到了广大编程人员的欢迎.它使 程序员不必再直接面对纷繁复杂的Windows消息,而可以将精力主要集中在程序功能的实现上,大 ...

  3. Cocos2d-x 3.x 在wp8中调用系统字体的解决方案

    问题和解决方法: 在使用cocos2d-x设计游戏的时候,字体是个很重要的部分.如果游戏中对字体没有太多的要求,就可以使用平台系统自带的字体,可以节省游戏的尺寸,以及减小游戏运行时所占用的内存.当加载 ...

  4. c#/vb调用c编写的标准dll

    准备: 首先打开vc++ 6.0新建工程,选择Win32 Dynamic Link-Library,命名为stdLibrary 新建library.cpp文件,内容如下 #include <st ...

  5. c# asp.net 调用系统设置字体文本框

    一,调用系统字体文本框 首先在bin文件夹右击--添加引用--.net标签里选择System.Windows.Forms--确定 然后在cs文件里引入,using System.Windows.For ...

  6. asp.net调用系统设置字体文本框的方法

    本文实例展示了asp.net调用系统设置字体文本框的方法,是进行web开发中很实用的技巧.具体实现步骤如下: 一.调用系统字体文本框 首先在bin文件夹右击-->添加引用-->.net标签 ...

  7. VB调用sendinput API

    http://files.cnblogs.com/files/liuzhaoyzz/VB%E8%B0%83%E7%94%A8sendinput_API.rar sendinput只支持发送字符或者组合 ...

  8. VB 调用 webservice 出现:WSDLReader:Loading of the WSDL file failed HRESULT=0×80040154: 没有注册类别 解决方案

    有些 VB 程序在调用  webservice  的时候出现“WSDLReader:Loading of the WSDL file failed HRESULT=0×80040154: 没有注册类别 ...

  9. VB调用VC dll的返回方式

    第一种类型:数值传递 注意:在VB中,默认变量传递方式为ByRef为地址,而传递值就是用ByVal,还要注意在C++中,int类型的变量是32位的,在VB中要用long型变量来配合.VC++部分: e ...

随机推荐

  1. 【翻译】JavaScript中的作用域和声明提前

    原文:http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html ===翻译开始=== 你知道下面的JavaScript脚本执 ...

  2. PCA understanding

    PCA understanding 我们希望获取玩具的位置,事实上我们只需要知道玩具在x轴的位置就可以了(但现实不知道).我们利用三个坐标轴,获取了2*3维度的数据,现实中我们如何通过分析六维度数据来 ...

  3. 写出完美论文的十个技巧10 Tips for Writing the Perfect Paper

    10 Tips for Writing the Perfect Paper Like a gourmet meal or an old master painting, the perfect col ...

  4. UVa 1473 - Dome of Circus 三分

    把所有的点都映射到XOZ这个平面的第一象限内,则这个三维问题可以转化二维问题: 求一条直线,使所有点在这条直线的下方,直线与X轴和Z轴围成的三角形旋转形成的圆锥体积最小. 这样转化之后可以看出直线的临 ...

  5. ios 使用GCD 多线程 教程

    什么是GCD Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法.该方法在Mac OS X 10.6雪豹中首次推出,并随后被引入到了iOS4.0中.GCD ...

  6. Android中的多线程

    final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.han ...

  7. git push提示或错误

    当 git 和 gerrit 一起使用的时候,你创建了一个 tag,现在需要 push 到远程仓库,当你没有权限的时候,会出现如下提示: $ git push origin v20150203 Tot ...

  8. ASCII码常用值

    大写字母 A~Z 65~90 小写字母a~z 97~122 数字0~9 48~ 57

  9. bzoj4011

    好题,首先有一个结论,有向无环图的树形图数目=根节点意外入度之积 现在相当于在原图上加一条边问树形图的数目 考虑多出来不合法的方案,一定是成环且包含新加入的边 对于一条路贡献就是∏d[i] [i∉pa ...

  10. Java 并发基础

    Java 并发基础 标签 : Java基础 线程简述 线程是进程的执行部分,用来完成一定的任务; 线程拥有自己的堆栈,程序计数器和自己的局部变量,但不拥有系统资源, 他与其他线程共享父进程的共享资源及 ...