Question au sujet d'un listview [Résolu]

Signaler
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009
-
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
-
Bonjour tout le monde !

Alors voilà j'ai un problème !

je bosse sous vb6 et j'ai une form avec un picturebox. Cette picturebox occupe toute la form. Cette form contient une image de fond . J'ai également ajouté une listview et je voudrais savoir comment récupérer l'image cachée par le listview et l'afficher en fait en arrière plan dans mon listview afin d'avoir un arrière plan listview comme si il était transparent.
Je me suis renseigné sur la fonction paintpicture, mais je n'arrive qu'a afficher l'image du picturebox en entier.

Merci pour votre aide.

17 réponses

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
29
no problème
mais pourquoi mettre l'image dans une picture1 et pas directement sur la forme ?

'il faut que la picture2 soit plus grande que la ListView
    Picture2.Width = ListView1.Width
    Picture2.Height = ListView1.Height
   
    Picture2.PaintPicture Picture1.Picture, 0, 0, ListView1.Width, ListView1.Height, ListView1.Left, ListView1.Top, ListView1.Width, ListView1.Height
   
    ListView1.Picture = Picture2.Image

Daniel
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonjour,

Montre le code que tu as écrit en utilisant paintpicture, s'il te plait.
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009

Picture2.PaintPicture Picture1.Image, Picture2.Left, Picture2.Top, Picture2.Width, Picture2.Height

A savoir que : le picture 2 est à la même position que le listview et sera caché. Je charge après l'arrière plan du listview avec celle de la picturebox2
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Excuse-moi mais :
"A savoir que : le picture 2 est à la même position que le listview et sera caché. Je charge après l'arrière plan du listview avec celle de la picturebox2"

Je vois mal ce mécanisme là...
Explique comment picture2 sera cachée, alors ! C'est cet asêct là que tu dois ici nous montrer...
SQinon : pas de problème ! si tu veux que picture2 ne contienne que la partie de Picture1 qui correspond à l'emplacement de ListView1, on sait faire...
C'est ce que tu veux ? et tu t'en contenteras ? C'est sur ?
Dis-nous donc !.
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009

Je suis ouvert à toute proposition !

En fait je voulais mettre l'option visible de picturebox2 à false
donc la cacher.
Mais si tu as une autre possibilité sans picturebox2 alors je suis preneur
à savoir que je veux juste que listview1 ne contienne que la partie de Picture1 qui correspond à l'emplacement pris par le listview
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Non, je n'en ai certainement pas , moi...
Mais tu disais haut et fort :
 "Je me suis renseigné sur la fonction paintpicture, mais je n'arrive qu' a afficher l'image du picturebox en entier."
ce qui me paraissait assez surprenant ! ('je ne voyais vraiùment pas comment !)
Alors ?
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Je te précise quand même que le contrôle Listview n'a pas de propriété hdc !!!
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009

alors ???

lol

regarde ce que ça donne http://www.neopix.fr/apercu.jpg
je peux pas etre plus clair
http://www.neopix.fr/apercu.jpg
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Si nbsi ! Tu vas être plus bclair, tu vas voir :

où est ta lisview dans cette belle image ?
Facile à faire avec tout contrôle doté d'un hdc (et je sais faire) ... mais, vois-tu, pas avec une listview (ou en tout cas pas avec une un contrôle listview normal)..
Et encore moins si comme toi, apparemment, on n'y parvient pas avec une simple pictureBox qui, elle, oui, a pourtant le hdc nécessaire ....
Allez !
Commence par çà, donc : une pictureBox pseudo transparente (celà te fera déjà commencer à réfléchir un petit ... très petit... peu !)
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009

la listview se trouve là ou l'image se repete et la ou l'image est décalée.

Alors voilà : je veux récupérer l'image du picturebox1 qui est coupée par le listview dans le picturebox2 et ensuite je chargerai l'image  qui  se trouvera dans le picturebox2 et je le mettrai dans l'arriere plan du listview

Alors voila.

Si tu peux m'éclairer éclaire moi dis moi si je peux utiliser le paintpicture et comment.
Merci
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Non m'sieu !
Je te l'ai dit : pas de hdc = pas possible.
Tu verras sois ta listview, soit ta picturebox... pas les deux avec l'image de ta listbox en "fond" de ta listeview !
Montre-moi donc, tout bêtement , une listviview avec une image de fond !...

Tout ce que tu pourrais faire serait de mettre par dessus ta listview une Form "translucide", mais même ainsi, ta listeview n'en serait plus une car ses articles ne seraient plus "accessibles".
Tu as égalkement la possibilité de te fabriquer ton propre OCX (si tu t'en sens le courage et la capacité), et de le doter du hdc nécessaire.
Bref...
Amuse-toi...
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009

mais un picturebox a un hdc !

il est quand meme possible de récupérer une image dans un picturebox qui correspond à une partie du grand picturebox ?
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
C'est pas vrai !
Je parle chinois ou quoi ?
Cà oui, c'est possible, bien évidemment (et commence donc par apprendre au moins celà) avec PaintBicture ou avec (à ton choix) la Fonction StrechtBlt dela librairie GDI32 de  l'API de Windows...
Fastoche même ...
Et après ?
Tu comprends ou non que tu auras soit la PictureBox soit la Listview, mais jamais la listview avec une image de fond qui serait celle de ta pictureBox ...???????
Bon...
Terminé pour moi...
Bonne chance
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009

En fait pour le moment oublie le listview
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009

Exactement ce que je cherchais

Merci pour tout
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Hé bé !
Si c'est seulement pour rendre "pseudo transparente" une picturebox picture2 située dans une picturebox Picture1, ma foi, voilà :

Une Form : une pictureBox Picture1 avec une image dedans
Une pictureboçx Picture2 dans la picturebox picture1 et pardessus l'image qui se trouve dans Picture1
et ce tout petit bout de code :

Private Sub Form_Initialize()
  Picture1.ScaleMode = 3
  Picture2.ScaleMode = 3
  pict_transpa Picture2, Picture1
End Sub


Private Sub pict_transpa(pict, f)
  With pict
    .ScaleMode = 3
    .BorderStyle = 0
    .BackColor = f.BackColor
    .AutoRedraw = True
    On Error Resume Next 'si pas d'image de fond ou que la picturebox ne chevauche pas d'image
    .PaintPicture f.Picture, 0, 0, , , pict.Left, pict.Top
  End With
End Sub


Mais, je te le répête, celà ne te permettra en aucun cas de faire ce que tu veux : à savoir mettre une image de fond dans ta listview.


Daniel : d'où sors-tu une propriété Picture de la listview ?  (j'ai pas la chose, moi, avec VB5, il est vrai ...)
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
29
il me semble que je l'ai toujours eu
mscomctl.ocx version 6.00.8862
Windows Common Controls 6.0 (SP4)
l'aurais-je changé en cours de route ?...
c'est possible, je ne m'en souviens plus, je sais que j'ai changé quelques éléments ponctuellement mais je sais plus lesquels

effectivement j'ai essayé le Common Contols 5.0 (SP2) il n'y a pas de propriété Picture !!!!

Daniel