question bête :
j'affiche des images dans une Listbox,
est ce que je peux les centrer ou les zoomer ?
Version imprimable
question bête :
j'affiche des images dans une Listbox,
est ce que je peux les centrer ou les zoomer ?
Tout est faisable, maintenant à toi de détailler : le zoom se fait dans la même fenêtre ou tu en ouvres une autre ?
Pour les centrer tu dois pouvoir te débrouiller en mettant un style à OwnerDrawn (je ne sais plus exactement lequel ni où) et en dessinant toi-même.
Pour le zoom, ce serait dans la même fenetre.
mais si c'est plus facile en ouvrant une autre fenetre pourquoi pas
J'ai retrouvé :
Tu mets le style de la ListBox à "lbOwnerDrawFixed" ou "lbOwnerDrawVariable"
Tu dois ensuite écrire la fonction de dessin, voici un exemple de code :
Au lieu d'écrire, tu peux dessiner des formes par exemple ou afficher des bitmaps.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 void __fastcall TForm2::ListBox1DrawItem(TWinControl *Control, int Index, TRect &Rect, TOwnerDrawState State) { // dessine dans le canevas du contrôle, pas dans la fiche TCanvas *pCanvas = ((TListBox *)Control)->Canvas; // on fixe la couleur d'affichage if (State.Contains(odSelected)) { if (Index == 0) pCanvas->Font->Color = clYellow; else pCanvas->Font->Color = clWhite; } // on remplit le fond du canvas. pCanvas->FillRect(Rect); // on ecrit du texte pCanvas->TextOut(Rect.Left + 2, Rect.Top, ((TListBox *)Control)->Items->Strings[Index]); }