コンボボックスのテキスト部の高さを設定する
                                                        玄関へお回り下さい。
コンボボックスのテキスト部の高さを設定する        (114)
        Option Explicit   'SampleNo=114 WindowsXP VB6.0(SP5) 2002.05.22
'指定のウィンドウにメッセージを送る(P750)
Private Declare Function Sendmessage Lib "user32" _
  Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
  ByVal wParam As Long, lParam As Any) As Long
'項目の高さを設定する(P790)
Private Const CB_SETITEMHEIGHT = &H153


Private Sub Command1_Click()
  Combo1.Move 300, 300, 3000
  Dim lngCobHei As Long   'Combo の高さ
  Dim lngRet  As Long
  With Combo1
    '元の高さをピクセル単位で求める
    lngCobHei = CLng(.Height \ Screen.TwipsPerPixelX)
    '高さを元の高さの1.1倍に設定
    lngCobHei = CLng(lngCobHei * 1.1)
    'wParam テキスト部の時= -1    リスト部=0 だが出来ない
    lngRet = Sendmessage(.hWnd, CB_SETITEMHEIGHT, -1&, ByVal lngCobHei)
  End With
End Sub


Private Sub Form_Load()
  Combo1.AddItem "VBレスキュー(花ちゃん)"
  Combo1.AddItem "VBレスキュー(花ちゃん)"
  Combo1.AddItem "VBレスキュー(花ちゃん)"
  Combo1.AddItem "VBレスキュー(花ちゃん)"
  Combo1.AddItem "VBレスキュー(花ちゃん)"
End Sub


  実行結果
     
どういった場面で、必要なのかは判りませんが、過去の掲示板に質問があり、出来ないような
回答があったような記憶があったので、APIを調べていて出来そうな事が書いてあったので試し
てみました。
    




2002/05/22