コンボボックスの各種操作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
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









