Rendre une picutrebox transparente

[Résolu]
Signaler
Messages postés
86
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
1 avril 2015
-
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
-
Slt

je chercher a rendre une picture box transparente histoire de ne pas avoir de un carré autour de mon image. j'ai vu un code qui fonctionne bien sur le site.

http://www.vbfrance.com/codes/BACKGROUND-TRANSPARENT-POUR-CHECKBOX-OPTIONBOX-OPTIONBUTTON-PICTUREBOX-AVEC_26826.aspx

mais le probleme c'est que si l'on veut changer l'image dans la picturebox a un moment donné du programme ca ne fonctionne plus après.

15 réponses

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
La raison de ce scintillement n'a absolument rien à voir avec ta transparence (tu l'aurais également avec une image normale). Ce scintillement doit être traité par autre chose encore (il te faut figer l'image de ta picturebox, en la "validant", par encore une autre API)

A ta demande, je t'ai fait parvenir non pas un mais deux projets, super commentés, montrant différentes superpositions dont la 1ère est en transparence "réelle" d'une couleur.

C'est dans ta boite email.
Messages postés
292
Date d'inscription
mercredi 25 octobre 2006
Statut
Membre
Dernière intervention
27 novembre 2009

Lu,
regarde dans les anciens posts,y'a déjà une réponse
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
"...ne pas avoir de un carré autour de mon image..."

Ca n'a rien a voir avec la transparence de la picturebox.

C'est la propriété BorderStyle à mettre sur None

Ouh là, suis pas sûr d'avoir tout compris à la question, moi

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
86
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
1 avril 2015

lol non ca j'connais le borderStyle. j'suis un noob mais quand même.

Sinon oui le cancre j'suis deja allé voir plein de post pour trouver la solution avant de mettre le mien mais j'ai rien comprit.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Moi, je veux bien t'aider, mais à une condition... dont j'exige que tu la respectes... si non ... ne compte pas sur moi :

Exprime-toi avec précision !

Car, pour moi, une pictureBox transparente est une picturebox qui laisse tout passait au travers ! (ce qui veut dire que l'on ne voit donc même pas l'image qu'elle pourrait contenir !)

Dans ce domaine, comme dans beaucoup d'autres, il faut savoir appeler un chat un chat et un chien un chien .

J'attends cette précision d'expression nécessaire... à défaut de quoi, tu l'auras, ta "tranparence"... et elle sera totale !
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Pardon : lire "qui laisse tout passer au travers, bien sur ...
Messages postés
86
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
1 avril 2015

ok jmfmarques.

Donc je veut une picturebox qui dans l'évolution de mon programme va changer régulierement d'image . Cette picturebox est positionné sur une autre picturebox qui est mon décord de fond.

Donc voila moi ce que je veut c'est que cette picturebox dont quelque soit l'image qu'il y ai dedans est une couleur transparente pour que je puisse voir le décord de fond. J'espere que j'ai été assez  claire.

C'est pas toujours facile de dire ce que l'on veut exactement lol
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Commpent çà, ce n'est pas facile ?...
Dis-moi si j'ai deviné et si ce que je formule ici est bien ce que tu veux :

Placer sur une picture box déjà dotée d'une image des pictureboxes contenant également une image et dont une couleur a été définie comme étant transparente (de sorte à ce que l'on ne voie de cette image "superposée" que ce qui n'est pas de cette unique couleur)
C'est çà ?
Messages postés
86
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
1 avril 2015

Oui c'est bien ca. lol
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Voilà !...
Tu vois qu'il est toujours possible d'exprimer les choses clairement en peu de mots ?...
Bon...
Nous allons en parler, donc :
on commence par 3 questions, dont les réponses me permettront de t'orienter le plus utilement possible :

Question 1 : quel est l'objet précis de ton projet ? Est-ce une animation ?
Question 2 : possèdes-tu un outil te permettant de faire des images avec une couleur transparente ?
Question 3 : quel est ton degré de compréhension et d'expérience d'utilisation des fonctions de l'API de Windows (car il faudra en passer par là si tu ne possèdes pas un outil tel que défini en question2). Car il nous faudrait alors utiliser la fonction GdiTransparentBlt de la librairie gdi32.dll de l'Api de windows et je préfèrerais t'éviter celà si tu n'en es pas à un stade avancé en développement !
Messages postés
86
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
1 avril 2015

1 - j'essaie de faire un petit jeu de role (Pour le moment pas d'annimation prevut
2 - Oui j'ai un outil pour faire la couleur transparente
3 - je suis vraiment pas tres bon mais bon si c'est mieux j'veut bien essayé cette methode la
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Ok !

1) il te serait alors plus facile de faire se promener sur ta picturebox des contrôles images dotés de leur couleur transparente (fastoche et efficace !)

2) si tu tiens à savoir comment on peut faire avec l'API de Windows, donne-moi par MP une adresse Email où je peux t'envoyer une démonstration d'utilisation.

Cette démontration nécessitant dux images, entre autres, il faut un zip complet... et je n'ai vraiment pas envie de déposer une source pour une chose qui me paraît personnellement sans intérêt réel...

Ton adresse email par MP, donc, et tu recevras celà chez toi ... Mais c'est ton choix, donc, et si tu n'y comprends rien, à ce code-là (pourtant super commenté), ne t'attends pas à ce que je réponde à des demandes d'explications complémentaires ... ma réponse est, à l'avance : non... ou on sait ensemble de quoi l'on parle ensemble... ou l'on s'en tient, chacun... au niveau de ses connaissances...(ce que j'ai de mon côté fait pendant longtemps, avant de monter, ... pas à pas...)
Messages postés
86
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
1 avril 2015

Effectivement avec la methode image sur sur une picturebox ca fonctionne niquel  mais bien que je n'est pas de  réel animation dans mon programme l'utilisation des images  dedans les fait scintillé a certain moment et ce n'est vraiment pas beau
Messages postés
86
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
1 avril 2015

Merci pour les projets que tu m'a envoyé il sont vraiment tres bien commenté. Cette méthode est parfaite  pour  ce que j'avais a faire.

Sinon pour la L'Api qui me servirais a figé l'image de ma picturebox pour évité le scintillement j'suis interréssé si ta un exemple aussi.

Encore un dernier truc lool. Pour mon jeu j'utilise la librairy user32.dll pour la souris (genre
pour délimité des zones)   j'arrive a gérer les coordonnées de la x et y de la souris,  mais j'arrive pas a gérer les boutons (genre if buttton1 1 then text1 "test"   
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Pour ton scintillement : intéresse-toi à la fonction ValidateRect de la librairie User32.dll de l'Api de Windows. Elle te permet de ne pas repeindre, entre autres, le "rectangle" qu'elle concerne (donc ta picturebox de fond).
La fonction InvalidateRect de la même librairie redéclare non figé le rectangle en cause.

Pour tes boutons de souris, le plus simple, pour toi, serait peut-être d'utiliser une variable globale, de lui donner la valeur du bouton pressé au mouse_down et de la lébérer au Mouse_up.

Il te suffira alors, dans l'utilisation de ta fonction, de lire l'état de cette variable et tu sauras quel est le bouton en cours.

Mais tu es là en train de traiter un autre sujet, ce qui risque d'embrouiller la discussion en cours.
Ce qu'il convient de faire :
- dire où est la réponse acceptée de la présente discussion
- ouvrir au besoin une autre discussion pour traiter un nouveau problème