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

解決


studio-take  2012-04-25 09:08:05  No: 42041

タイトル通りなんですが、縦方向に中寄せしたいんですが、うまくいきません。
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 09:36:58  No: 42042

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

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

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


Mr.XRAY  2012-04-25 09:41:37  No: 42043

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

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


studio-take  2012-04-26 03:17:07  No: 42044

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

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);


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加