明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3271|回复: 7

[求助]如何在AcDbTextStyleTable中添加一个TrueType字体?

[复制链接]
发表于 2002-7-30 16:35 | 显示全部楼层 |阅读模式
发表于 2002-7-30 20:42 | 显示全部楼层

答复

TrueType字体,以.TTF为扩展名的,这种字体表示真实类型( TrueType)字体,该字
体拥有较高的字体质量。另外,使用各种真实类型字体可以给图增加更好的对比效果。
TrueType字体的方法1:(用Mtext不显示仿宋体)
(1)        建立一个新的字体样式表记录
(2)        使用SetFont()函数,设置TrueType字体。
(3)        使用add()函数添加到字体样式表中。
TrueType字体的方法2:
(1)        建立一个新的字体样式表记录
(2)        使用setFileName()函数和setBigFontFileName()函数,设置字母和TrueType字体。
(3)        使用add()函数添加到字体样式表中。
 楼主| 发表于 2002-7-30 21:09 | 显示全部楼层

我写了一段代码,好像不行,帮我看看。

Acad::ErrorStatus SetFont()
{
        Acad::ErrorStatus Er;       
        AcDbTextStyleTable * pTxt;
        Er=acdbCurDwg()->getTextStyleTable(pTxt,AcDb::kForWrite);
        if (Er!=Acad::eOk)
        {
                ads_alert("Error Get TextStyleTable");
                return Er;
        };
        AcDbTextStyleTableRecord* pRecord=new AcDbTextStyleTableRecord;
        pRecord->setFont("simfang.ttf",FALSE,FALSE,0,0);
           pRecord->setName("fqj");
        Er=pTxt->add(pRecord);
        pTxt->close();
        return Er;


}
发表于 2002-7-31 17:28 | 显示全部楼层

re

SetFont()函数,用于将TrueType字型设置为字体样式。
Acad::ErrorStatus setFont(
   const char* pTypeface,
   Adesk::Boolean bold,
   Adesk::Boolean italic,
   int charset,
   int pitchAndFamily) const;
pTypeface        字体名
bold        true为粗体
italic        true为斜体
charset        字符集的值
pitchAndFamily        字距和字符族的值
TrueType常用字体
TrueType字体名        charset        pitchAndFamily
仿宋_GB2312          134        49
宋体                  134        2
黑体                  134        2
隶书               134        49
幼园                  134        49
楷体_GB2312        134        49
 楼主| 发表于 2002-8-1 10:26 | 显示全部楼层

斑竹,我按你的提示改了一下,可还是没加进去。再看看?谢了

Acad::ErrorStatus SetFont()
{
        Acad::ErrorStatus Er;       
        AcDbTextStyleTable * pTxt;
        Er=acdbCurDwg()->getTextStyleTable(pTxt,AcDb::kForWrite);
        if (Er!=Acad::eOk)
        {
                ads_alert("Error Get TextStyleTable");
                return Er;
        };
        AcDbTextStyleTableRecord* pRecord=new AcDbTextStyleTableRecord;
        pRecord->setFont("仿宋_GB2312",FALSE,FALSE,134,49);
        pRecord->setName("fqj");
        Er=pTxt->add(pRecord);
        pTxt->close();
        return Er;
}
发表于 2002-8-2 18:02 | 显示全部楼层

re

AcDbTextStyleTable *pTextStyleTable;
   acdbHostApplicationServices()->workingDatabase()
        ->getSymbolTable(pTextStyleTable, AcDb::kForWrite);
    AcDbTextStyleTableRecord *pTextStyleTableRecord =
        new AcDbTextStyleTableRecord;
    pTextStyleTableRecord->setName("机械制图1");
//        pTextStyleTableRecord->setFont("宋体",0,0,134,2);
    pTextStyleTableRecord->setFont("仿宋_GB2312",FALSE,FALSE,134,49);
    pTextStyleTableRecord->setXScale(0.67);
        AcDbObjectId Id;
        pTextStyleTable->add(Id,pTextStyleTableRecord);
    pTextStyleTable->close();
    pTextStyleTableRecord->close();

        return Id;
 楼主| 发表于 2002-8-3 11:26 | 显示全部楼层
[此贴子已经被作者于2002-8-3 11:26:16编辑过]
 楼主| 发表于 2002-8-3 11:25 | 显示全部楼层

斑竹,我编译不通过呀!我用的是ObjectARX R14.

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 20:25 , Processed in 0.293137 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表