创建字体以及文本控件显示的总结

来源:互联网 发布:mac 公式编辑器 编辑:程序博客网 时间:2024/05/30 04:33

使用控件默认的字体,同时显示日文和中文时,会出现乱码,根据SkinMagic里面的设置,使用MS Sans Serif(微软细明字)字体,可以解决该问题。

使用该字体同时在文本控件上显示中文,日文和英文三种语言都可以。

 

创建字体,然后将文本控件SetFont

        m_fontScrollText.CreateFont( 18,

                                        0,

                                        0,

                                        0,

                                        FW_NORMAL,

                                        FALSE,

                                        FALSE,

                                        FALSE,

            ANSI_CHARSET,

OUT_DEFAULT_PRECIS,

CLIP_DEFAULT_PRECIS,

DEFAULT_QUALITY,

DEFAULT_PITCH,

_T( "MS Sans Serif" )

                                        );

简单说明一下参数。

1.    1个参数

字体大小,在磅数和逻辑高度之间有一个换算的方法。

方法1

CreatePointFont的源码中

    int nHeight; // 字体的高度

    POINT pt;

    pt.y = ::GetDeviceCaps(hDC, LOGPIXELSY) * PointSize;

    pt.y /= 720;    // 72 points/inch, 10 decipoints/point

    ::DPtoLP(hDC, &pt, 1);

    POINT ptOrg = { 0, 0 };

    ::DPtoLP(hDC, &ptOrg, 1);

    nHeight = -abs(pt.y - ptOrg.y);

方法2

    nHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

 

2.    5个参数

可以设置字体是否加粗

3.    6个参数

设置字体是否倾斜

4.    7个参数

设置字体是否有下划线

5.    最后一个参数

字体的名称。

 

上述的转换没有测试,如有问题再修改。

 
原创粉丝点击