Question au sujet d'un listview

Résolu
math083
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009
- 17 juin 2007 à 19:08
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
- 17 juin 2007 à 23:13
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

Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
17 juin 2007 à 22:38
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
3
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
17 juin 2007 à 19:14
Bonjour,

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

17 juin 2007 à 19:31
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
0
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
17 juin 2007 à 20:53
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 !.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
math083
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009

17 juin 2007 à 21:05
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
0
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
17 juin 2007 à 21:51
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 ?
0
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
17 juin 2007 à 21:59
Je te précise quand même que le contrôle Listview n'a pas de propriété hdc !!!
0
math083
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009

17 juin 2007 à 22:03
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
0
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
17 juin 2007 à 22:12
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 !)
0
math083
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009

17 juin 2007 à 22:17
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
0
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
17 juin 2007 à 22:22
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...
0
math083
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009

17 juin 2007 à 22:25
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 ?
0
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
17 juin 2007 à 22:30
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
0
math083
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009

17 juin 2007 à 22:39
En fait pour le moment oublie le listview
0
math083
Messages postés
49
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009

17 juin 2007 à 22:41
Exactement ce que je cherchais

Merci pour tout
0
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
17 juin 2007 à 22:52
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 ...)
0
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
17 juin 2007 à 23:13
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
0