Utilisation de l'api sendmessage avec une listbox ou un combobox

Soyez le premier à donner votre avis sur cette source.

Vue 29 241 fois - Téléchargée 3 976 fois

Description

Voici une liste d'exemples de l'API SendMessage dans le cadre d'une utilisation avec une ListBox ou un ComboBox.

J'ai découvert ces exemples sur le site "htt://www.vb-helper.com" et je me dis qu'ils pourraient bien en intéresser quelques uns d'entre vous. Les exemples sont copiés tels quels et je n'ai pas pris le temps de traduire les commentaires en anglais déjà placés.

Quels sont ces exemples :

1) A la manière d'Accès, mise en colonnes des items d'une listbox sans passer par une police spéciale (mon préféré, cfr la capture) ;
2) Alignement à l'extrème droite des éléments d'une listbox ;
3) Alignement à droite d'items tels que des valeurs numériques ;
4) Mise des éléments d'un combobox sous forme de liste à colonnes et affiche une des colonnes lors de la sélection de l'élément ;
5) Saisie semie-automatique dans un combobox mais n'autorisant que la saisie des mots présents dans la liste ;
6) Sélection dans un combobox un élément en fonction de la frappe dans une zone de texte ;
7) Ajout à un combobox ou une listbox d'une liste de fichiers, répertoires ou lecteurs ;
8) Affichage du chemin des répertoires spéciaux de l'ordinateur ;
9) Afficher plus de 8 items lorsqu'on déroule un combobox ;
10) Modifier la largeur de la liste déroulée d'un combobox ;
11) Sélectionner ou déselectionner tous les éléments d'une listbox de type checkbox en une ligne de code ;
12) Récupérer l'élément sélectionné par un click droit dans une listbox ;
13) Modifier le menu contextuel d'un combobox pour ne permettre que la copie du texte et empêcher d'y coller une autre valeur (dans le cadre d'un copier-coller) ;
14) Ajouter une barre de défilement horizontal à une listbox ;
15) Augmenter la taille de la barre de défilement horizontal d'une listbox si la longueur de texte des éléments ajoutés est plus long que certains éléments.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
251
Date d'inscription
lundi 29 mars 2004
Statut
Membre
Dernière intervention
4 mars 2008
1
Salut !

Pour l'erreur Overflow relevée ci-dessus par MaddM@tt... il suffit d'aller en haut de la page et de remplacer les "As Integer" de la déclaration de SendMessage par "As Long".

Cordialement,
Cacophrène
Messages postés
46
Date d'inscription
samedi 17 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2006
1
Je voudrais savoir si qq pourrais adapter ce code à VBA
merci....

Private Declare Function ShowScrollBar Lib "user32" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long

Private Const SB_HORZ = 0
Private Const SB_VERT = 1
Private Const SB_BOTH = 3

ShowScrollBar List1.hwnd, SB_VERT, False
Messages postés
241
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
19 février 2006
1
Merci,

J'ai la réponse :

Private Declare Function ShowScrollBar Lib "user32" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long

Private Const SB_HORZ = 0
Private Const SB_VERT = 1
Private Const SB_BOTH = 3

ShowScrollBar List1.hwnd, SB_VERT, False

Ca fonctionne bien en statique mais pas en dynamique. Alors j'ai mis la fonction dans un timer à 1, mais on arriva à les voir cintiller...
Alors je vais creer un userform ListBox. L'astuce sera de faire le userform mois large que la ListBox contenant un scroll verticale...
La gestion des méthodes (add, remove...) sera faite par API, car c'est très rapide et simple.

A+
Messages postés
1133
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011
1
>>> salazar
Hélas, ça ne me dis rien non plus...
Faudrait que je pousse plus loin les investigations...
Messages postés
241
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
19 février 2006
1
Très interessant !

Sais tu supprimer la scrollbar verticale de la listbox par API, car je souhaite utiliser une que j'ai développé.

Merci.
Eric
Afficher les 17 commentaires

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.