DrawTextExで中央寄せ+改行を実現したい

解決


studio-take  2012-04-25 00:08:05  No: 42041  IP: 192.*.*.*

タイトル通りなんですが、縦方向に中寄せしたいんですが、うまくいきません。
DrawTextEx(Handle,PChar(ExportStr),Length(PChar(ExportStr)),FieldRect,DT_VCENTER or DT_CENTER or DT_WORDBREAK,nil);

DT_SINGLELINEのときしか、DT_VCENTERは機能しないんでしょうか?

編集 削除
Mr.XRAY  2012-04-25 00:36:58  No: 42042  IP: 192.*.*.*

こんにちは,Mr.XRAYです.

>DT_SINGLELINEのときしか、DT_VCENTERは機能しないんでしょうか?

と,MSDNには書いてありますね.
http://msdn.microsoft.com/ja-jp/library/cc428478.aspx

編集 削除
Mr.XRAY  2012-04-25 00:41:37  No: 42043  IP: 192.*.*.*

こんなとこが参考になりませんか?

[DrawTextの文字列について]
https://www.petitmonte.com/bbs/answers?question_id=3330

編集 削除
studio-take  2012-04-25 18:17:07  No: 42044  IP: 192.*.*.*

早速ありがとうございます。
下記コードでうまくいきました。
引数頼みだけではできないんですね。

OffsetY := ((RectB - RectT) - DrawText(Handle,PChar(ExportStr),Length(PChar(ExportStr)),FieldRect,DT_WORDBREAK + DT_CALCRECT)) div 2;
OffsetRect(FieldRect,0,OffSetY);
DrawTextEx(Handle,PChar(ExportStr),Length(PChar(ExportStr)),FieldRect,DT_CENTER or DT_WORDBREAK,nil);

編集 削除