![]() |
【转帖】请教个关于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. |