配置した文字のフォント名を取得する方法


配置した文字のフォント名を取得する方法を紹介します。

まず、配置した文字要素でGetITextQuery()を使ってITextQueryCP textQueryを定義します。

次にtextQuery->GetTextPart()を使ってTextBlockPtr textBlockを定義します。

続きましてtextBlock->GetRunPropertiesForAdd()でRunPropertiesCR runPropsを定義します。

最後にrunProps.GetFont()でFontが取得できてfont.GetName()でフォント名が取得できます。

void getTextProperties()
{
	ElementId id= 9199;
	EditElementHandle myText(id,ACTIVEMODEL);

	ITextQueryCP textQuery = myText.GetITextQuery();
	
	ITextPartIdPtr textPart;
	TextBlockPtr textBlock = textQuery->GetTextPart(myText, *textPart);

	RunPropertiesCR runProps = textBlock->GetRunPropertiesForAdd();
	DgnFontCR font = runProps.GetFont();
	myStr.Sprintf(L"font name is %s", font.GetName().c_str());
	mdlDialog_dmsgsPrint(myStr);

}