通知
すべてクリア
Topic starter
2003年2月6日 2:15 PM
VC++6.0 SP5 MFCにて開発しております。
リストボックスの各項目の高さをSetItemHeight()にて表示テキストのフォントサイズより大き
くした場合、そのテキストは項目の上部に表示されてしまいますが、これを上下中央配置にする
ことは可能でしょうか?
可能であれば、その方法をご教授願えればと思います。
また更に、左右中央配置にすることも可能であれば、併せてご教授願います。
2003年2月6日 3:49 PM
「リストボックス」「項目」「オーナードロー」をキーワードにして、google などで検
索してみてください。
2003年2月6日 3:50 PM
既にオーナー描画をしているなら
DRAWITEMSTRUCTのrcItemが1項目のサイズだったと思うのでそれと
描画するテキストのサイズをGetTextExtentで取得して
描画位置を調整すれば良いと思います
Topic starter
2003年2月6日 6:23 PM
ご助言ありがとうございます。
「オーナードロー」がキーワードだったのですね。
CListBoxクラスの派生クラスを生成して、オーバーライドさせる DrawItem() 内で
DrawText(str, &rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE)
とすることで、所望する動作を実現することができました。