リストボックスの各項目のテキスト表示を上下左右中央表示にしたい – プログラミング – Home

リストボックスの各項目のテキスト表示を...
 
通知
すべてクリア

[解決済] リストボックスの各項目のテキスト表示を上下左右中央表示にしたい


えふ
 えふ
(@えふ)
ゲスト
結合: 23年前
投稿: 11
Topic starter  

VC++6.0 SP5 MFCにて開発しております。
リストボックスの各項目の高さをSetItemHeight()にて表示テキストのフォントサイズより大き
くした場合、そのテキストは項目の上部に表示されてしまいますが、これを上下中央配置にする
ことは可能でしょうか?
可能であれば、その方法をご教授願えればと思います。
また更に、左右中央配置にすることも可能であれば、併せてご教授願います。


引用未解決
トピックタグ
渋木宏明(ひどり)
 渋木宏明(ひどり)
(@渋木宏明(ひどり))
ゲスト
結合: 23年前
投稿: 196
 

「リストボックス」「項目」「オーナードロー」をキーワードにして、google などで検
索してみてください。


返信引用
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

既にオーナー描画をしているなら
DRAWITEMSTRUCTのrcItemが1項目のサイズだったと思うのでそれと
描画するテキストのサイズをGetTextExtentで取得して
描画位置を調整すれば良いと思います


返信引用
えふ
 えふ
(@えふ)
ゲスト
結合: 23年前
投稿: 11
Topic starter  

ご助言ありがとうございます。
「オーナードロー」がキーワードだったのですね。
CListBoxクラスの派生クラスを生成して、オーバーライドさせる DrawItem() 内で

DrawText(str, &rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE)

とすることで、所望する動作を実現することができました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました