コンボボックスの各種操作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」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。
スポンサーリンク
関連記事
前の記事: | 文字列を大文字/小文字に変換する |
次の記事: | コンボボックスの各種操作2 |
公開日:2015年03月05日
記事NO:00399