ListBoxに文字列を表示(2)

[戻る]
GG 2007/02/01(木) 14:50:49
お世話になっています。GGです。

ListBoxに文字列を表示しています。
行と行間に隙間がわずかにありますが、
もう少し行と行間に隙間がほしいですが、
以下のようにやっています。

   m_font3.CreatePointFont(110, _T("MS ゴシック"));
  e_ListBox3.SetFont (&m_font3);

どうしたらいいでしょうか。

よろしくお願いします.

環境:.Net(2002) MFC使用、Win2000

Blue 2007/02/01(木) 15:17:52
高さはフォントに合わせて適切になるようになっています。
それを変えたいなら、オーナードローしてMeasureItemで適当な高さにするしかなさそ
う。

オーナードローするにはCListBoxの派生クラスを作って、
DrawItem,MeasureItemを実装して、、と結構面倒です。

参考:オーナードローで複数行リストボックスを作成する 
http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_LBowner.html

ぬふや 2007/02/01(木) 15:37:27
オーナードロー無しで、LB_SETITEMHEIGHTじゃ駄目だっけ?

Blue 2007/02/01(木) 15:41:55
>オーナードロー無しで、LB_SETITEMHEIGHTじゃ駄目だっけ?
すみません、これで出来ますね。orz
(MeasureItemのことしか考えてなかった、、、)

ちなみに
水平方向中央揃えには出来るんでしたっけ?

Blue 2007/02/01(木) 15:45:23
> ちなみに
> 水平方向中央揃えには出来るんでしたっけ?
間違えました。

水平方向ではなく垂直方向でした。

Blue 2007/02/01(木) 15:49:13
連続ですみません。

過去ログに
○リストボックスの各項目のテキスト表示を上下左右中央表示にしたい
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200302/03020037.txt
というのがありました。

GG 2007/02/02(金) 09:00:16
ぬふやさん、Blueさん、
ご回答ありがとう。

>オーナードロー無しで、LB_SETITEMHEIGHTじゃ駄目だっけ?
うまく表示できました。

垂直方向上に揃えていますが、
垂直方向中央揃えにはどうしたらいいでしょうか。
(オーナードロー無しで)

よろしくお願いします。

Blue 2007/02/02(金) 09:07:16
>(オーナードロー無しで)
過去ログ読まれていないのでしょうか?
おそらくオーナードローなしでは不可能でしょう。

オーナードローって行ってもそんなにコード量多いとは思わないし。

PATIO 2007/02/05(月) 14:41:44
コントロールに最初から備わっている機能以外の事がしたいなら
オーナードロウで行うしか無いと思いますよ。

基本的には提供されているコントロールはそのまま使った方が無難です。
実用上に問題があるとか、仕様上どうしても特殊な表示を行いたいと言う
ようなレベルの話であれば、オーナードロウを使ってでも対処せざる得ない
と思うのですが、趣味的な範疇の問題ならそこまでしなくても良いのでは
無いかと言うのが個人的な意見です。

技術的な興味でやってみると言うのであれば止めませんが、
変更しなくてはならない理由が特に無いのであれば、変えなくても良いのでは
ないかと私は思います。

GG 2007/02/16(金) 17:14:19
Blueさん、PATIOさん、
ご回答ありがとう。

返事が遅かった、すみませんでした。

>オーナードローって行ってもそんなにコード量多いとは思わないし。
まだやっていないのですが、(時間がなかった)

>変更しなくてはならない理由が特に無いのであれば、変えなくても良いのでは
>ないかと私は思います。
一応、そのまま使っています。特に支障がないことです。

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

古いスレッドには追加発言できません。