Cb_setdroppedwidth ou comment agrandir un combobox

Description

Bonjour, une mini source, pour démontrer comment agrandir la zone où la liste du Combo s'affiche...

Source / Exemple :


Option Explicit

Private Const SWP_NOACTIVATE As Long = &H10
Private Const SWP_NOMOVE As Long = &H2
Private Const CB_SETDROPPEDWIDTH As Long = &H160

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Sub Form_Load()
Dim i As Integer
Dim sBuffer As String
    Randomize
    '# On remplit les combos avec des items aléatoires, de longueur aléatoire
    CcCboLittle.Clear
    CcCboBig.Clear
    For i = 0 To 50
        sBuffer = String$(CInt(30 * Rnd + 5), Chr$(CInt(25 * Rnd + 97)))
        CcCboLittle.AddItem sBuffer
        CcCboBig.AddItem sBuffer
    Next i
    
    With CcCboBig
        '# Agrandissement vertical de la zone dépliante (taille 200 pixels)
        SetWindowPos .hwnd, 0, 0, 0, Me.ScaleX(.Width, vbTwips, vbPixels), 200, SWP_NOMOVE Or SWP_NOACTIVATE
        '# Agrandissement horizontal de la zone dépliante (taille 270 pixels)
        SendMessage .hwnd, CB_SETDROPPEDWIDTH, 270, ByVal 0&
    End With
End Sub

Conclusion :


à noter que les dimensions fournies doivent être en Pixels...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.