UG二次开发 UF_DRF_create_note 创建显示汉字

当用UF_DRF_create_note 按如下方式创建汉字时
char* text_string [1]={"<F3>汉字ABC<F>"};    
double note_origin[3]={0,0,0};
tag_t note_tag=NULL_TAG;
UF_CALL(UF_DRF_create_note(1,text_string,note_origin,0,&note_tag));

程序有时候是汉字,有时候是方框框


问题的原因是{"<F3>汉字ABC<F>"} 中的F3应该对应的是chinesef的字体,但有时候ug系统对应的不是F3 ,可能是F4,F8等等,F后面紧跟的不是一个定值,
所以后来改为如下代码:


int index=-1;
tag_t s_part_tag=UF_PART_ask_display_part();
tag_t s_obj=NULL_TAG;
UF_OBJ_cycle_objs_in_part(s_part_tag,UF_font_table_type,&s_obj);
while(s_obj!=NULL_TAG)
{

UF_CALL(UF_UGFONT_add_font(s_obj,&index,"chinesef"));




UF_OBJ_cycle_objs_in_part(s_part_tag,UF_font_table_type,&s_obj);
}




char* text_string [1]={""};    
char str[133]="";
sprintf(str,"<F%d>汉字ABC<F>",index);     //

text_string[0]=str;
double note_origin[3]={0,0,0};
tag_t note_tag=NULL_TAG;
UF_CALL(UF_DRF_create_note(1,text_string,note_origin,0,&note_tag));

猜你喜欢

转载自blog.csdn.net/hustoysj/article/details/9170793