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 ' Public Sub GrowUpComboBox(ByRef ObjLB As ComboBox, ByRef ObjScale As Object, ByVal Width As Long, ByVal Height As Long) With ObjLB Call SetWindowPos(.hwnd, 0&, 0&, 0&, ObjScale.ScaleX(.Width * Screen.TwipsPerPixelX, vbTwips, vbPixels), Height, SWP_NOMOVE Or SWP_NOACTIVATE) Call SendMessage(.hwnd, CB_SETDROPPEDWIDTH, Width, ByVal 0&) End With End Sub '---------------------- ' EXEMPLE D'UTILISATION '---------------------- ' Private Sub Form_Load() Me.ScaleMode = vbPixels Combo1.AddItem "le combo est chargé de chaînes plus grandes que sa largeur" Combo1.AddItem "le combo est chargé de chaînes plus grandes que sa largeur" Combo1.AddItem "le combo est chargé de chaînes plus grandes que sa largeur" Call GrowUpComboBox(Combo1, Me, 300, 200) End Sub
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.