質問

Atsuiで切り捨てられたテキストを描くにはどうすればよいですか? QuickDraw APIを使用するレガシーアプリがあります。 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]);

Atsuiで、truncstringのような糸の切り捨てを行う機能はありますか... ??そうでない場合は、どのようにして弦を描画しますか。

ありがとう、アブヒナイ。

役に立ちましたか?

解決

あなたは使いたいです HIThemeGetTextDimensions 切り捨てポリシーで文字列を測定する。長方形の幅と高さ、ベースラインが得られます。その幅と高さでcgrectを作成し、テキストが必要な場所にその起源を設定できます。

驚くべきことに、この機能は64ビットでまだサポートされているように見えますが、文書化されたことはありません(参照文書はまったくありませんでした)。詳細については、ヘッダーで調べてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top