リストボックス内のリストを取り出す <TOP>
リストボックス内のリストを取り出します。
SendMessage 指定のウィンドウにメッセージを送る
LB_GETCOUNT(&H18B)
リストボックスの項目数を取得する
LB_GETTEXT(&H189)
リストボックスから文字列を取得する
LB_GETTEXTLEN(&H18A)
リストボックス内の文字列の長さを取得する
項目数を取得 → その長さを取得 → テキストを取得
参照
'================================================================ '= リストボックスのリストを取り出す
'= (Sendmessage5.bas) '================================================================ #include "Windows.bi" ' ウィンドウにメッセージを送信 Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any) #define LB_GETCOUNT &H18B 'リストボックスの項目数を取得する #define LB_GETTEXT &H189 'リストボックスから文字列を取得する #define LB_GETTEXTLEN &H18A 'リストボックス内の文字列の長さを取得する #define vbCrLf (Chr$(13) & Chr$(10)) 'キャリッジリターンとラインフィード(\r\n) Var Shared List1 As Object List1.Attach GetDlgItem("List1") : List1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() List1.AddString "January" List1.AddString "February" List1.AddString "March" List1.AddString "April" List1.AddString "May" List1.AddString "June" List1.AddString "July" List1.AddString "August" List1.AddString "September" List1.AddString "October" List1.AddString "November" List1.AddString "December" End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var num As Long Var i As Integer Var txt As String Var Buffer As String Var length As Long 'コンボボックスの項目数を取得 num = Api_SendMessage(List1.GethWnd, LB_GETCOUNT, 0, 0) 'リストを調べる For i = 0 To num - 1 '項目の長さを取得 length = Api_SendMessage(List1.GethWnd, LB_GETTEXTLEN, i, 0) 'バッファの確保 Buffer = Space$(length + 1) 'テキストを取得 length = Api_SendMessage(List1.GethWnd, LB_GETTEXT, i, Buffer) txt = txt & Left$(Buffer, length) & vbCrLf Next i A% = MessageBox("", txt, 0, 2) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End