コンボ(リスト)ボックスの項目を全て削除          <TOP>


SendMessage ウィンドウにメッセージを送信
CB_RESETCONTENT(&H14B) コンボボックスのリストボックスからすべての項目を除去
LB_RESETCONTENT(&H184) リストボックスからすべての項目を除去
 

 

'================================================================
'= コンボ(リスト)ボックスの項目を全て削除
'=    (RESETCONTENT.bas)
'================================================================
#include "Windows.bi"

' ウィンドウにメッセージを送信
Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any)

#define CB_RESETCONTENT &H14B           'コンボボックスのリストボックスからすべての項目を除去する
#define LB_RESETCONTENT &H184           'リストボックスからすべての項目を除去する

Var Shared Combo1 As Object
Var Shared List1 As Object
Var Shared Button1 As Object

Combo1.Attach GetDlgItem("Combo1") : Combo1.SetFontSize 14
Combo1.SetWindowSize 66, 96
List1.Attach GetDlgItem("List1") : List1.SetFontSize 14
List1.SetWindowSize 66, 96
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    For i% = 1 To 20
        Combo1.AddString Str$(i%)
        List1.AddString Str$(i%)
    Next
    Combo1.SetCursel 0
End Sub

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var Ret As Long

    'コンボボックス・リストボックスの項目をすべて削除
    Ret = Api_SendMessage(Combo1.GethWnd, CB_RESETCONTENT, 0, ByVal CLng(0))
    Ret = Api_SendMessage(List1.GethWnd, LB_RESETCONTENT, 0, ByVal CLng(0))
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End