コンボ(リスト)ボックスの選択項目番号を取得 <TOP>
SendMessage ウィンドウにメッセージを送信
CB_GETCURSEL(&H147)
コンボボックスのリストボックス内で選択された項目のインデックスを取得する
CB_ERR(-1) エラー
LB_GETCURSEL(&H188) リストボックス内で選択された項目のインデックスを取得する
LB_ERR(-1) エラー
Combo1.GetCursel、List1.GetCurselと同じです。
'================================================================ '= コンボ(リスト)ボックスの選択項目番号を取得 '= (CB_GETCURSEL.bas) '================================================================ #include "Windows.bi" ' ウィンドウにメッセージを送信 Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any) #define CB_GETCURSEL &H147 'コンボボックスのリストボックス内で選択された項目のインデックスを取得する #define CB_ERR (-1) 'エラー #define LB_GETCURSEL &H188 'リストボックス内で選択された項目のインデックスを取得する #define LB_ERR (-1) 'エラー Var Shared Combo1 As Object Var Shared List1 As Object Var Shared Text1 As Object Var Shared Text2 As Object Var Shared Button1 As Object Combo1.Attach GetDlgItem("Combo1") : Combo1.SetFontSize 14 List1.Attach GetDlgItem("List1") : List1.SetFontSize 14 Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 12 Text2.Attach GetDlgItem("Text2") : Text2.SetFontSize 12 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 Var Shared Month(11) As String '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() For i = 0 To 11 Read Month(i) Combo1.AddString Month(i) List1.AddString Month(i) Next Data "睦月","如月","弥生","卯月","皐月","水無月" Data "文月","葉月","長月","神無月","霜月","師走" End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var CbSelIndex As Long Var LbSelIndex As Long 'コンボボックスの選択項目インデックスを取得 CbSelIndex = Api_SendMessage(Combo1.GethWnd, CB_GETCURSEL, 0, ByVal CLng(0)) '項目インデックスが取得できたとき If CbSelIndex <> CB_ERR Then '選択項目インデックスを表示 Text1.SetWindowText Str$(CbSelIndex) '項目インデックスが取得できなかったとき Else 'エラーを表示 Text1.SetWindowText "項目が選択されていません。" End If 'リストボックスの選択項目インデックスを取得 LbSelIndex = Api_SendMessage(List1.GethWnd, LB_GETCURSEL, 0, ByVal CLng(0)) '項目インデックスが取得できたときは If LbSelIndex <> LB_ERR Then '選択項目インデックスを表示 Text2.SetWindowText Str$(LbSelIndex) '項目インデックスが取得できなかったとき Else 'エラーを表示 Text2.SetWindowText "項目が選択されていません。" End If End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End