■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#5346-0リストボックスの文字表示について五嘉宝1999-09-17(金) 13:32
     #5351-0RE#5346:リストボックスの文字表示についてぜんちゃん1999-09-17(金) 14:21
     #5362-0RE#5346:リストボックスの文字表示についてせつら1999-09-17(金) 15:46
     #5368-0RE#5362:リストボックスの文字表示についてゆう(U)1999-09-17(金) 16:24
     #5372-0RE#5351:リストボックスの文字表示について五嘉宝1999-09-17(金) 16:57
     #5387-0RE#5372:リストボックスの文字表示についてぜんちゃん1999-09-17(金) 17:46
     #5390-0RE#5387:リストボックスの文字表示についてぜんちゃん1999-09-17(金) 17:56
#5346-0
リストボックスの文字表示について
リストボックス内の行(文字の上下)の間隔を変える方法や
行毎に文字の色を変える方法などを、どっちも無理かもしれ
ませんけど、多少無理なやり方でもいいので、ご存知の方が
いたら教えて下さい。
#5351-0
RE#5346:リストボックスの文字表示について
色を変える方法はわかりませんが、行の高さなら変えれますよ。
APIのSendMessageを使えばできますよ。

Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

hwnd はリストボックスのハンドル
wMsg は下の定数
   Public Const LB_SETITEMHEIGHT = &H1A0
wParam は ByVal 0
lParam は ByVal 行の高さの値

色を変える方法は私も知りたいです。
分かったら教えてくださいね。
#5362-0
RE#5346:リストボックスの文字表示について
ListView なら、VB5 なんかでも強引に色を変えにいく手は有るのですけどねぇ。 こんな事やれば。

Private Sub Command1_Click()
    Dim lVal As Long

    lVal = &H800000FF
    SendMessage ListView1.hWnd, &H1024, 0, ByVal lVal
End Sub

これでも、行選択する度に色が変わってしまうので、何かしらの工夫が必要ですけどね。 ListBox 
では色換えは無理でしょう。 MsFlexGrid を使うのが一番良さそうです。
#5368-0
RE#5362:リストボックスの文字表示について
> これでも、行選択する度に色が変わってしまうので、何かしらの工夫が必要ですけどね。 ListBox 
> では色換えは無理でしょう。 MsFlexGrid を使うのが一番良さそうです。
私も、MSFlexGridをお勧めしますが・・・

行ごとに色を変えるのは、オーナードローってのを使うと
出来るかもしれません。
※Web検索で探して見て下さい。
#5372-0
RE#5351:リストボックスの文字表示について
> APIのSendMessageを使えばできますよ。
> 
> Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
> (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
> 
> hwnd はリストボックスのハンドル
> wMsg は下の定数
>    Public Const LB_SETITEMHEIGHT = &H1A0
> wParam は ByVal 0
> lParam は ByVal 行の高さの値

回答ありがとうございます。
上記のAPIさっそく試したのですが、"lParam As Any"のところがわかりません。
具体的にはどのようなパラメータを入れればいいんでしょうか?
例えば文字半分の高さの間隔を空けるには、どうすればいいんでしょうか?
面倒とは思いますが、よかったらもう一度ご回答ください。
#5387-0
RE#5372:リストボックスの文字表示について
> 回答ありがとうございます。
> 上記のAPIさっそく試したのですが、"lParam As Any"のところがわかりません。
> 具体的にはどのようなパラメータを入れればいいんでしょうか?

適当に数字を入れてみて、画面で確認してみてください。
だいたいの値が分かると思うのですが。
単位はピクセルです。

> 例えば文字半分の高さの間隔を空けるには、どうすればいいんでしょうか?
> 面倒とは思いますが、よかったらもう一度ご回答ください。

まず、テキストの高さを取得しないといけないので、ピクチャーボックスの
コントロールをフォームに張り付けてプロパティのScalModeをピクセルにして

Dim a As Long

a = Picture1.TextHeight("あ")
a=a+fix((a/2))

引数のlParamに a の値を入れてみてください。
#5390-0
RE#5387:リストボックスの文字表示について
補足です。

ピクチャーボックスとリストボックスの
フォントの種類、サイズは同じにしてください。
このページと関連する記事:
#46831-0リストボックスについて2001-09-13(木) 11:38
#5425-0ウィンドウメッセージ処理を行いたいんです(上)1999-09-18(土) 16:47
#28270-0リストボックス2000-08-21(月) 10:32
#11719-1ListBoxコントロールについて2000-06-16(金) 16:18
#44348-0別アプリケーションのリストボックスに値を追加する方法2001-06-22(金) 12:06
#12555-0テキストボックスについて1999-12-30(木) 13:17
#17620-0コンボボックスに、9個以上のプルダウンリスト表示2000-03-09(木) 10:02
#11335-0コンボボックスのリストの長さ1999-12-09(木) 17:52
#1724-0sendmessageについて1999-07-21(水) 13:34
#9682-0コンボボックスに最大表示行について2000-04-17(月) 19:42
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)