ホーム > カテゴリ > Visual Basic >

コンボボックスの各種操作1

コンボボックスの各種操作1のサンプルです。

サンプルの実行画面

ソースコード

[CoboItem.frm]

'SendMessage=>メッセージをウインドウに送る

'<引数>
'hWnd:ウインドウのハンドル
'wMsg:定数(CB_××参照)
'wParam:パラメータ
'lParam:0

'<戻り値>
'値により異なる

Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long

'SendMessageString=>メッセージをウインドウに送る

'<引数>
'hWnd:ウインドウのハンドル
'wMsg:定数(CB_××参照)
'wParam:パラメータ
'lParam:0

'<戻り値>
'正常終了-1以外

'lParamをString型にしているのを注目

Private Declare Function SendMessageString Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long


'ウインドウの位置とサイズを変更するAPI関数


'hWnd:ウインドウのハンドル
'X:移動後のx座標
'Y:移動後のy座標値
'nWidth:変更後の幅
'nHeigh:変更後の高さ
'bRepaint:1

'戻り値:正常終了0以外

'スクリーン座標なので注意(X,Y)

Private Declare Function MoveWindow Lib "USER32" (ByVal hWnd As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

Const CB_SETDROPPEDWIDTH = &H160    'コンボボックスの幅を変更する
Const CB_SETCURSEL = &H14E          '指定項目をハイライト表示する
Const CB_SELECTSTRING = &H14D       'コンボボックスを選択する
Private Sub Command1_Click()

'リスト部分の幅を指定のサイズにする
Call SendMessage(Combo1.hWnd, CB_SETDROPPEDWIDTH, Text1.Text, 0)

End Sub

Private Sub Command2_Click()

Dim Ret As Long

'コンボボックスの項目を一括表示する
  Ret = MoveWindow(Combo1.hWnd, Combo1.Left, Combo1.Top, Combo1.Width, 250, 1)

'第五引数の値は各自で変更してください。

 End Sub

Private Sub Command3_Click()

Dim Ret As Long

'コンボボックスの項目を一括表示しているのを解除する
  Ret = MoveWindow(Combo1.hWnd, Combo1.Left, Combo1.Top, Combo1.Width, 100, 1)

'第五引数の値は各自で変更してください。

End Sub

Private Sub Command4_Click()

'指定の項目をトップ(ハイライト表示)にする

  If 14 >= Val(Text2.Text) Then
  
      Call SendMessage(Combo1.hWnd, CB_SETCURSEL, Val(Text2.Text), 0)
  
  Else
 
      MsgBox "指定された項目が見つかりません"
  
  End If
 
End Sub

Private Sub Command5_Click()

'コンボボックス内の文字列を検索してハイライト表示にする
  Ret = SendMessageString(Combo1.hWnd, CB_SELECTSTRING, 0&, Text3.Text)
  
  If Ret = -1 Then MsgBox "検索した結果「" & Text3.Text & "」は見つかりませんでした。"
  
End Sub


'初期設定
Private Sub Form_Load()

 Dim X As Long
 Dim i As Long

 For i = 1 To 15
   Combo1.AddItem "第" & i & "章"
 Next

   X = Screen.TwipsPerPixelX
   Text1.Text = Combo1.Width \ X

   Combo1.ListIndex = 0

  'ピクセルにする
   Form1.ScaleMode = vbPixels

End Sub

ソースコード一式のダウンロード

vbapi_coboitem.zip 1.97 KB (2,020 バイト)

このサンプルの動作環境について

このサンプルは 「Windows98」及び「Microsoft Visual Basic 5.0 Professional Edition」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。





関連記事



公開日:2015年03月05日
記事NO:00399