查看: 3348|回复: 9

osg中怎么使用CFontDialog里的字体

[复制链接]

该用户从未签到

发表于 2008-9-3 18:12:34 | 显示全部楼层 |阅读模式
怎么使用从CFontDialog中得到的字体??

该用户从未签到

发表于 2008-9-3 18:37:22 | 显示全部楼层
首先得到字体的名称,,,然后读取字体,,设置字体~~~~~~~
  1.         

  2. osgText::Font* font = osgText::readFontFile("");
  3. osgText::Text* text = new osgText::Text;
  4. text->setFont(font)
复制代码

该用户从未签到

 楼主| 发表于 2008-9-3 19:07:48 | 显示全部楼层
这个…… :L
从CFontDialog中可以得到比如宋体,黑体,斜体,以及下划线等,而osg里text的font好像是字体文件名,这两者怎么联系起来呢??

该用户从未签到

发表于 2008-9-3 19:31:28 | 显示全部楼层
GetCurrentFont(),,,你总是可以得到相关的字体文件的名称,,,或者你可以预先处理~~~~~~~两者之间联系就可以通过OSG场景对象指针来传递~~~~~~~~~~~~

该用户从未签到

 楼主| 发表于 2008-9-3 19:44:06 | 显示全部楼层
原帖由 FlySky 于 2008-9-3 19:31 发表
你总是可以得到相关的字体文件的名称

这点我做不到,想问的也就是这点,怎么得到字体文件的名称呢?

该用户从未签到

发表于 2008-9-3 20:18:36 | 显示全部楼层
CFontDialog::m_cf结构体,其中定义了:
LPLOGFONT lpLogFont;
LOGFONT结构体中应该定义了字体的名称。

这是从MSDN上查到的,我实在是不怎么用MFC的~~ Qt万岁,wxWidgets万岁~~

该用户从未签到

 楼主| 发表于 2008-9-3 20:30:06 | 显示全部楼层
CFontDialog::m_cf里定义了字体的名称,比如宋体,字形:比如斜体,大小,颜色,没有找到那个跟字体文件名直接挂钩的东西。有谁知道啊?
程序里面让人选择字体的时候选填字体文件感觉不是很友好。

该用户从未签到

发表于 2008-9-3 20:51:40 | 显示全部楼层
原帖由 sky206 于 2008-9-3 20:30 发表
CFontDialog::m_cf里定义了字体的名称,比如宋体,字形:比如斜体,大小,颜色,没有找到那个跟字体文件名直接挂钩的东西。有谁知道啊?
程序里面让人选择字体的时候选填字体文件感觉不是很友好。


m_cf里面不是有个LPLOGFONT lpLogFont吗?LPLOGFONT结构体的定义里不是有个TCHAR* TypefaceName吗?那个也不可以?

该用户从未签到

 楼主| 发表于 2008-9-4 10:34:31 | 显示全部楼层
原帖由 array 于 2008-9-3 20:51 发表


m_cf里面不是有个LPLOGFONT lpLogFont吗?LPLOGFONT结构体的定义里不是有个TCHAR* TypefaceName吗?那个也不可以?
你确定有TCHAR *TypefaceName  ??
我没有看到那一项

typedef struct tagLOGFONTA
{
    LONG      lfHeight;
    LONG      lfWidth;
    LONG      lfEscapement;
    LONG      lfOrientation;
    LONG      lfWeight;
    BYTE      lfItalic;
    BYTE      lfUnderline;
    BYTE      lfStrikeOut;
    BYTE      lfCharSet;
    BYTE      lfOutPrecision;
    BYTE      lfClipPrecision;
    BYTE      lfQuality;
    BYTE      lfPitchAndFamily;
    CHAR      lfFaceName[LF_FACESIZE];
} LOGFONTA, *PLOGFONTA, NEAR *NPLOGFONTA, FAR *LPLOGFONTA;

该用户从未签到

发表于 2008-9-4 11:22:22 | 显示全部楼层
原帖由 sky206 于 2008-9-4 10:34 发表
你确定有TCHAR *TypefaceName  ??
我没有看到那一项

typedef struct tagLOGFONTA
{
    LONG      lfHeight;
    LONG      lfWidth;
&# ...


我记不清变量的名字,上次玩MFC还是上大学的时候,应该是这个:
CHAR lfFaceName[LF_FACESIZE];
储存的可能只是字体的名字,不过应该可以据此找到对应的字体文件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表