Ajustement d'une listbox

Résolu
AMIBEN Messages postés 28 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 19 novembre 2008 - 30 mars 2005 à 21:10
AMIBEN Messages postés 28 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 19 novembre 2008 - 31 mars 2005 à 21:36
Bonjour,

Voila je ne parviens pas a afficher la totalite d'un texte dans une
listbox car celui ci est plus grand que la listbox, je cherche a
utiliser une barre de defilement horizontale mais sans succe.

Qui pourrais m'aider car je suis bloque.



D'avance merci

Ami ben

3 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
31 mars 2005 à 02:47
Const LB_GETHORIZONTALEXTENT = &H193
Const LB_SETHORIZONTALEXTENT = &H194


Const SB_LINELEFT = 0
Const SB_LINERIGHT = 1
Const SB_PAGELEFT = 2
Const SB_PAGERIGHT = 3
Const SB_LEFT = 6
Const SB_RIGHT = 7


Const WM_HSCROLL = &H114
Const WM_VSCROLL = &H115


Private Type SCROLLINFO
cbSize As Long
fMask As Long
nMin As Long
nMax As Long
nPage As Long
nPos As Long
nTrackPos As Long
End Type


Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long


Private Sub Command1_Click()
Dim si As SCROLLINFO
Dim s As String
Dim m As Long
s = "abcdefghijklmnopqrstuvwxyz"
List1.AddItem s
m = List1.Parent.TextWidth(s) + 2
SendMessageLong List1.hwnd, LB_SETHORIZONTALEXTENT, m, 0
SendMessageLong List1.hwnd, WM_HSCROLL, SB_RIGHT, 0
End Sub

Daniel
3
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
30 mars 2005 à 22:17
Voici un code qui modifie la largeur de la ListBox (ce n'est pas le texte qui défile, mais la ListBox qui s'élargit.Peut-être cela te conviendra t-il ?, fait un essai.
Place un HScroll sous la ListBox.

Private Sub Form_Load()
List1.Height = 1025
List1.AddItem "Ceci est un essai"
HScroll1.Min = 1025 'La largeur de la ListBox placée sur la Form
HScroll1.Max = 2000 'La largeur Max obtenue de la ListBox placée sur la Form
HScroll1.SmallChange = 50 'La valeur selon laquelle la barre de défilement change le positionnement
End Sub
Private Sub HScroll1_Change()
List1.Width = HScroll1.Value
End Sub
Private Sub HScroll1_Scroll()
Call HScroll1_Change
End Sub

jpleroisse
0
AMIBEN Messages postés 28 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 19 novembre 2008
31 mars 2005 à 21:36
Merci bien a vous deux, car vos code fonctionne tres bien.

Je suis donc reste sur celui de Daniel, qui realise exactement ce que
je souhaite, a ceci pres que j'ai seulement changer une valeur:

Const SB_RIGHT = 7

est devenu

Const SB_RIGHT = 0

pour mettre la barre de defilement au debut.



Encore merci de votre aide
Ami ben
0
Rejoignez-nous