几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(C++) (http://www.dimcax.com/hust/forumdisplay.php?f=34)
-   -   【转帖】请教个关于textstyle的问题 (http://www.dimcax.com/hust/showthread.php?t=8113)

yang686526 2009-04-18 08:16 PM

【转帖】请教个关于textstyle的问题
 
请教个关于textstyle的问题
请教个关于textstyle的问题
这段时间在学arx,但是现在遇到个问题,无从解决。
ptextstylerecord->setname("songti");
ptextstylerecord->setfont("宋体",adesk::kfalse,adesk::kfalse,936,fixed_pitch);
ptextstylerecord->settextsize(50.00);
我用这段代码生成了一个文字样式,但是当我输入文本调用这个样式的时候
db->setcontents("这是宋体");
db->settextstyle(idtextstyle);
//这个id是那个新生成样式返回的(贴主要代码,其他略)。
这个时候出现了一个问题:我发现文字(“这是宋体”)的字体已经变为宋体,而文字大小却没有变化,还是默认的2.5,并且文字样式里边包括"songti"这个样式,并且这段文字的样式也是"songti"。
并且当我编辑这段文字的时候,在文字编辑器里边,把这段文字的style变为默认的standard,然后再变为songti这个样式的时候,字体大小发生了变化。
现在百思不得其解,不知道各位遇到过这种情况么
ps:我的系统平台xp pro+cad2+objectarx2+vc6.0。
请下载张帆所著《objectarx开发实例教程》
本帖最后由 udbird 于 9-2-13 08:54 am 编辑
//创建文字样式
void zffchap4addstyle()
{
// 获得字体样式表
acdbtextstyletable *ptextstyletbl;
acdbhostapplicationservices()->workingdatabase()
->gettextstyletable(ptextstyletbl, acdb::kforwrite);
// 创建新的字体样式表记录
acdbtextstyletablerecord *ptextstyletblrcd;
ptextstyletblrcd = new acdbtextstyletablerecord();
// 设置字体样式表记录的名称
ptextstyletblrcd->setname("仿宋体");
// 设置字体文件名称
ptextstyletblrcd->setfilename("simfang.ttf");
// 设置高宽比例
ptextstyletblrcd->setxscale(0.7);
// 将新的记录添加到字体样式表
ptextstyletbl->add(ptextstyletblrcd);
ptextstyletblrcd->close();
ptextstyletbl->close();
}
acdbobjectid ccreateent::createmtext(const acgepoint3d& ptinsert,
const char* text, acdbobjectid style,
double height, double width)
{
acdbmtext *pmtext = new acdbmtext();

// 设置多行文字的特性
pmtext->settextstyle(style);
pmtext->setcontents(text);
pmtext->setlocation(ptinsert);
pmtext->settextheight(height);
pmtext->setwidth(width);
pmtext->setattachment(acdbmtext::kbottomleft);
return ccreateent:posttomodelspace(pmtext);
}
这两段代码是书中讲到创建多行文字和文字样式的sample,但是里边设置文字大小是在创建多行文字的时候设置的:
pmtext->settextheight(height);
我的意思是在创建文字样式的时候就设置文字大小,这样不用每次输入多行文字都来设置文字大小了,只需设置文字样式就可以了:
ptextstylerecord->settextsize(50.00);
但是我不管我在创建文字样式的时候怎么设置都不起作用,创建文字的时候,文字大小依然是系统默认的文字大小
哪位老大知道怎么回事的说以下了,快愁死小弟了


所有的时间均为北京时间。 现在的时间是 09:25 PM.