0

ATSUIで切り捨てられたテキストを描画するにはどうすればよいですか?QuickDrawAPIを使用するレガシーアプリがあります。StringWidth、TruncString、およびDrawString関数を使用します。StringWidthとDrawStringをATSUIのATSUMeasureTextImageとATSUDrawTextに置き換えることができます。しかし、長方形に収まるように文字列を切り捨てる方法を見つけることができませんでした。

ATSUIを選ぶ前に、QuickDrawでQuartzを使用しました。Quartzは、描画されたテキストのサイズ(ピクセル単位)を推定する関数を提供していません。

CGContextSelectFont(cgContext,
    "Geneva", 12.0, kCGEncodingMacRoman);
CGContextSetTextMatrix(cgContext,
    CGAffineTransformMake(1.0,0.0, 0.0,
    -1.0, 0.0, 0.0));
CGContextShowTextAtPoint(cgContext,
    inPoint.h, inPoint.v + 12.00, (const
    char*)&(inString[1]), inString[0]);

TruncStringのような文字列の切り捨てを行うATSUIの関数はありますか...?? そうでない場合は、長方形に切り捨てられた文字列を描画するにはどうすればよいですか。

ありがとう、Abhinay。

4

1 に答える 1

1

HIThemeGetTextDimensions切り捨てポリシーを使用して文字列を測定するために使用します。長方形の幅と高さ、およびベースラインが表示されます。その幅と高さでCGRectを作成し、その原点をテキストが必要な場所に設定できます。

驚くべきことに、この関数は64ビットでサポートされているように見えますが、ドキュメント化されたことはありません(HIThemeのリファレンスドキュメントはまったくありません)。詳細については、ヘッダーで調べてください。

于 2010-10-14T08:16:21.140 に答える