リストボックス内の項目を全選択・解除 <TOP>
リストボックス内の項目を全選択、解除を実行します。
SendMessage ウィンドウにメッセージを送信
LB_SETSEL(&H185) 複数選択リストボックス内の文字列を選択する
ListBoxのプロパティで複数選択、または拡張選択どちらか一方をありに設定しておきます。
'================================================================ '= リストボックス内の項目を全選択・解除 '= (SelectingAllItems.bas) '================================================================ #include "Windows.bi" ' ウィンドウにメッセージを送信。この関数は、指定したウィンドウのウィンドウプロシージャが処理を終了するまで制御を返さない Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any) #define LB_SETSEL &H185 '複数選択リストボックス内の文字列を選択する Var Shared List1 As Object Var Shared Button1 As Object Var Shared Button2 As Object List1.Attach GetDlgItem("List1") : List1.SetFontSize 14 : List1.SetWindowSize 208, 123 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 Button2.Attach GetDlgItem("Button2") : Button2.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() For i = 1 To 20 List1.AddString format$(rnd(i) * 10000000, "###,###,###.##") Next End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var Ret As Long Ret = Api_SendMessage(List1.GethWnd, LB_SETSEL, True, ByVal -1) End Sub '================================================================ '= '================================================================ Declare Sub Button2_on edecl () Sub Button2_on() Var Ret As Long Ret = Api_SendMessage(List1.GethWnd, LB_SETSEL, False, ByVal -1) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End