2009年05月30日

GDI Win32 API/描画する文字列の高さと幅のピクセルサイズの求め方

今まで、GDIで文字を描画するサイズ(文字列の高さと幅の
ピクセルサイズ)を求める際、GetTextExtentPoint32を
使っていましたが、GetTextExtentPoint32では改行は
考慮されずに、高さ・幅とも期待した値が取得できません。

そこで、改行コードでトークン分解し、一番幅のある
文字列行を取得して・・・なんてやっていた訳ですが、
DrawText に DT_CALCRECT を指定して

DrawText(hdcBMP, String, -1, &Rect, DT_CALCRECT);

みたいにコールすると、Stringの文字領域サイズを
改行を考慮して取得できる事を知りました。
hdcBMPには描画されずに、Rectに値だけ返ってきます!!
何て簡単なんだ。無知とは悲しい事でございますね。
posted by ぽっぽファクトリー at 00:36 | Comment(0) | TrackBack(0) | ソフトウェア開発