コンボボックスのドロップダウンリスト幅を設定(T)             <TOP>


コンボボックスのドロップダウンリスト幅を設定します。

SendMessage ウィンドウにメッセージを送信
CB_SETDROPPEDWIDTH(&H160) コンボボックスのドロップダウンリスト幅を設定(T)
 

 

 

'================================================================
'= コンボボックスリストダウン幅を変更
'=    (ComboWidth.bas)
'================================================================
#include "Windows.bi"

' ウィンドウにメッセージを送信。この関数は、指定したウィンドウのウィンドウプロシージャが処理を終了するまで制御を返さない
Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&)

#define CB_SETDROPPEDWIDTH &H160     'コンボボックスのリスト幅を変更

Var Shared Combo1 As Object
Var Shared Button1 As Object
Var Shared Button2 As Object

Combo1.Attach GetDlgItem("Combo1") : Combo1.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14
Button2.Attach GetDlgItem("Button2") : Button2.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    Var i As Long

    For i = 1 To 10
        Combo1.AddString String$(20, Chr$(&H40 + i))
    Next
End Sub

'================================================================
'= 幅を広げる
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var nWidth As Long
    Var Ret As Long

    'ドロップダウンリスト幅を設定(2倍)
    nWidth = CLng(Combo1.GetWidth * 2)
    Ret = Api_SendMessage(Combo1.GethWnd, CB_SETDROPPEDWIDTH, nWidth, ByVal CLng(0))
End Sub

'================================================================
'= 幅を戻す
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    Var nWidth As Long
    Var Ret  As Long

    'ドロップダウンリスト幅を設定
    nWidth = CLng(Combo1.GetWidth)
    Ret = Api_SendMessage(Combo1.GethWnd, CB_SETDROPPEDWIDTH, nWidth, ByVal CLng(0))
End Sub

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