BS_OWNERDRAWを使用したボタンでWordWrapを有効にするには?

解決


ふろんてぃあ  2011-02-23 01:27:10  No: 40066

いつもお世話になっております。
Delphi2010+XP SP3で開発しております。

ボタンの背景色を変更したくTButtonから派生させて
BS_OWNERDRAWを使用したコンポーネントを作成した。
おかげで背景色は変更できるようになったのですが、代わりに
WordWrapプロパティをTrueにし#13#10をキャプションに追加しても
文字が折り返ししなくなってしまいました。

オーナードローを使用すると、マルチラインでの表示は行えなく
なってしまうのでしょうか?
やりたい事は、ボタンの背景色が変えられてキャプションを複数行表示
させたいのですが、何か良い方法はありませんでしょうか。

どなたか良い方法をご存知の方がいらっしゃいましたら
ご教授頂けると助かります。

以上、宜しくお願い致します。


ふろんてぃあ  2011-02-23 02:38:23  No: 40067

申し訳ありません。自己解決致しました。

あるサンプルを参考にコンポーネントを作成したのですが
DrawTextを使用している部分があり、そこでDT_SINGLELINEを
使用していた為、マルチラインの表示が出来ない事が分かりました。
DT_WORDBREAKを使用すればマルチラインになりました。

しかし、問題が1つありましてDT_WORDBREAKを使用する事により
垂直方向へのセンタリングがなくなってしまいました。
色々と調べてみると、DT_VCENTERはDT_SINGLELINEの時だけ
有効という事なのでどうにもならない気もしますが、
もし良い方法を知っていらっしゃる方がいましたら
ご教授いただけませんでしょうか。

タイトルと質問内容が違ってしまって申し訳ありませんが
宜しくお願い致します。


ふろんてぃあ  2011-02-23 02:45:05  No: 40068

申し訳ありません。
またまた、自己解決(?)致しました。
過去ログに似た様な事が載っていましたので、解決とさせて頂きます。

https://www.petitmonte.com/bbs/answers?question_id=3330

ありがとうございました。


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

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






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