begin process at 2012 02 17 05:48:03
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > AJOUTER UNE BARRE DE DÉFILEMENT HORIZONTALE À UNE LISTBOX

AJOUTER UNE BARRE DE DÉFILEMENT HORIZONTALE À UNE LISTBOX


 Information sur la source

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Niveau :Débutant Date de création :08/03/2003 Date de mise à jour :09/03/2003 10:58:39 Vu / téléchargé :5 982 / 500

Auteur : PROGRAMMIX

Ecrire un message privé
Site perso
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Il arrive parfois que les éléments d'une listbox soit plus long que sa largeur (par exemple si on liste des chemins d'accès).   Il n'est alors pas possible de lire ce qui dépasse.  

Aussi je vous propose le code suivant qui ajoute une barre de défilement horizontale à votre listbox, grâce à l'API SendMessage et le "message" LB_SETHORIZONTALEXTENT, vous permettant ainsi de pouvoir lire ce qui se trouve hors cadre.

Source

  • Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
  • (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  • Private Const LB_SETHORIZONTALEXTENT = &H194
  • Private Sub BarreDeDéfilement(lstBox As ListBox)
  • Dim i As Integer
  • Dim Largeur As Long
  • Largeur = 0
  • 'Parcourt la liste, mesure la largeur des éléments et conserve la taille la plus large
  • For i = 0 To lstBox.ListCount - 1
  • If TextWidth(lstBox.List(i)) > Largeur Then Largeur = TextWidth(lstBox.List(i))
  • Next i
  • 'Affiche une barre de défilement horizontale
  • SendMessage lstBox.hwnd, LB_SETHORIZONTALEXTENT, Largeur + 5, 0
  • End Sub
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
        (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const LB_SETHORIZONTALEXTENT = &H194



Private Sub BarreDeDéfilement(lstBox As ListBox)
    Dim i As Integer
    Dim Largeur As Long
    
    Largeur = 0
    
    'Parcourt la liste, mesure la largeur des éléments et conserve la taille la plus large
    For i = 0 To lstBox.ListCount - 1
        If TextWidth(lstBox.List(i)) > Largeur Then Largeur = TextWidth(lstBox.List(i))
    Next i
    
    'Affiche une barre de défilement horizontale
    SendMessage lstBox.hwnd, LB_SETHORIZONTALEXTENT, Largeur + 5, 0
End Sub

 

 Conclusion

Comme d'autres de mes sources, je me suis servis d'un article d'Henri RUCH (et oui encore lui pour ceux qui regardent mes sources !) parus dans la revue "Programmez" (n°15).

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture MOTS CACHÉS - MOTS MÊLÉS - MOTS MASQUÉS
Source avec Zip Source avec une capture CONTRÔLE POUR LA SAISIE D'HORAIRE DE TRAVAIL
Source avec Zip Source avec une capture UTILISATION DE L'API SENDMESSAGE AVEC UNE LISTBOX OU UN COMB...
Source avec Zip Source avec une capture CONTRÔLE POUR SÉLECTIONNER DES FICHIERS COMME LA BOÎTE DE DI...
Source avec Zip Source avec une capture L'API ABORTDOC PERMET D'ANNULER L'IMPRESSION EN COURS D'UN D...

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

Commentaires et avis

Commentaire de Alain Proviste le 09/03/2003 15:37:24 administrateur CS

il est déjà sur le site plusieurs fois

mais ça n'est pas un mauvais code pour sûr...

Commentaire de Neo.balastik le 09/03/2003 17:49:36

En effet, une source existe déjà pour ce dont tu exposes: déposée le 18/05/2001 (ca date par d'hier)
http://www.vbfrance.com/article.aspx?Val=1344

Faire une simple recherche sur le mot-clé 'scrollbar' t'aurait montré que quelqu'un (moi même) s'était déjà atellé à la tâche.  Bonne prog tout de même.

Commentaire de PROGRAMMIX le 09/03/2003 20:16:28

Désolé, j'avais pourtant fait une rapide recherche avant de le poster.
J'ai encore dû aller trop vite...

Commentaire de cresus18 le 30/12/2004 16:53:59

Et bien moi, je lui mets 10 !!

J'ai trouvé ce code par hazard (car je cherchais autre chose) et je dois dire qu'il m'a quand même été bien utile.

En plus il est plus court que celui de Neo.balastik, il est aussi plus commenté. C'est une source comme je les aime : brêve mais efficace !!

Merci ;)

Commentaire de PROGRAMMIX le 30/12/2004 17:30:44

Merci cresus18

Commentaire de Alain Proviste le 30/12/2004 19:38:57 administrateur CS

lol ;)
ca fait plaisir hein programmix, un commentaire sur une vielle source :)

Commentaire de PROGRAMMIX le 30/12/2004 20:30:26

En effet, ça fait chaud au coeur...
Du coup, je vais me laisser aller à vous souhaiter d'ores et déjà une bonne année 2005 pleine de programmation et de ... (bugs à corriger ?)

Commentaire de mary85 le 21/07/2005 10:47:47

Bonjour,
J'aurais juste voulu savoir si vous n'aviez pas eu de souci à passer une liste box en paramètre. Je ne comprend pas, il m'est impossible de la passer en paramètre pour la procédure BarreDeDéfilement! Si quelqu'un à une idée... Merci

Commentaire de mary85 le 21/07/2005 11:09:12

Je m'excuse, j'ai fini par trouver : enfait il ne faut pas mettre de parenthèse et comme ça il n'affiche plus le message d'erreur "type de donnée incompatible".

BarreDeDefilement nom_de_la_liste

Voilà

Commentaire de PROGRAMMIX le 21/07/2005 11:54:00

Content de voir que la source n'est pas passée aux oubliettes...

Content de voir également que tu as pû trouver la solution tout seul ; c'est souvent le meilleur moyen d'apprendre.

Bonne continuation...

Commentaire de Alain Proviste le 21/07/2005 16:41:30 administrateur CS

ahah ah chaque fois que je vois un comment sur une vieille source, jsuis tout ému :')

Commentaire de RIGAGEIS le 11/10/2005 17:17:22

Salut,
Merci, car moi aussi ça m'a bien été utile...
10

Commentaire de Zenain le 29/01/2007 10:07:10

Je ne sais pas si vous lirez ce message vu que entre le premier message et le mien il y a à peu près 4 ans, mais je souhaite dire à PROGRAMMIX que ton programme est toujours utile car je viens de l'utiliser, et comme l'a dit CRESUS18, Court mais éfficace et clair :) , comme quoi les programmes peuvent durer longtemps. En tout cas, merci à toi.

PS : pour les autres programmes équivalents, ils étaient tout aussi parfait :) . Mais que voulez-vous, il faut choisir. Donc bravo à vous tous !

Commentaire de PROGRAMMIX le 29/01/2007 16:55:44

Merci Zenain...
4 ans après, ça fait toujours plaisir.

Commentaire de henrimaselati le 07/02/2008 13:10:25

bjr au vrais "GURU" de VB.

la longueur de la scrollbar horizontal n'est pas correct quand on a fait avant un sendmessage, pour mettre des tabs dans la listbox. qq'un a un solution.

ce que j'essaye de faire c'est de simmuler un grid control, en utilisant les controls "lite" (standard) de vb6, pour creer un executable sans installation, parce que j'ai toujours des problemes d'installation entre machine et certain ocx ne passe pas bien, et si on n'est adminstrateur d'un poste alors ca ne marche pas.

merci

henri

Commentaire de drum_ab le 16/02/2010 15:13:34

Merci pour ce code !

Je n'ai pas réussi à mettre en place l'autre code et celui ci du premier coup...

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales