Transparence image

le pro masterchief Messages postés 57 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 9 avril 2008 - 10 déc. 2006 à 23:21
le pro masterchief Messages postés 57 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 9 avril 2008 - 12 déc. 2006 à 16:03
Bonjour j'ai une question pour vous:
Je programme un jeux de mario que j'avais déjà fait en vb6 et jai voulu utiliser l'utilitaire de migration de vb2005(express) mais c'est pas très bon le résultat alors je veux le recommencer mais j'ai un problème avec la transparence de mes image. En vb6 ça allait bien puisque avec le controle image (et non picturebox) je pouvais afficher dedans le gif que j'avais mi une clé de transparence déja dans limage (non dans le code). Je fais la même chose avec vb2005 mais il y a seulement le control picturebox et comme dans vb6 , avec le picturebox la transparence sera défini par la couleur de la form alors si mon mario est collé à un méchant champignon, la couleur de transparence ne changera pas en fonction de son environnement alors la couleur de transp va embarquer par dessus le champignon ou viceversa alors cest ça mon problème. J'ai déja essayé avec ça



Dim
p

As
Bitmap



p = Mario.Image


p.MakeTransparent(Mario.BackColor)


mario.image=p


et ça marche pas.

8 réponses

Utilisateur anonyme
10 déc. 2006 à 23:25
Salut,

Il faut que tu définisse la propriété BackColor de ta PictureBox à Transparent.




__________
Kenji
0
le pro masterchief Messages postés 57 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 9 avril 2008
11 déc. 2006 à 00:36
Mais non ça ne règle pas mon problème je te rappel ce que jai dit:
si mon mario est collé à un méchant champignon, la couleur de transparence ne changera pas en fonction de son environnement alors la couleur de transp va embarquer par dessus le champignon.

regarde ici la capture
http://www.mezimages.com/agrandir_membre.php?na=samuel%20milette&fi=/cap.PNG
0
Utilisateur anonyme
11 déc. 2006 à 09:20
En effet. Ca fait la transparance que pour l'image de la form mais pas des autres controles.
Il faut donc faire sa PicturBox perso :



Public Class PictureBoxPerso
  Inherits System.Windows.Forms.UserControl

  Private Const WS_EX_TRANSPARENT As Integer = &H20
  Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
    Get
      Dim Cp As CreateParams = MyBase.CreateParams
      Cp.ExStyle += WS_EX_TRANSPARENT
      Return Cp
    End Get
  End Property

  Private _Image As System.Drawing.Image
  Public Property Image() As System.Drawing.Image
    Get
      Return MyClass._Image
    End Get
    Set(ByVal value As System.Drawing.Image)
      MyClass._Image = value
    End Set
  End Property

  Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
    MyBase.OnPaint(e)
    If MyClass._Image IsNot Nothing Then
      e.Graphics.DrawImage(MyClass._Image, MyBase.ClientRectangle)
    End If
  End Sub
End Class,

----

(Coloration syntaxique automatique par Kenji)



L'affichage a quelques ratées mais ca marche un peu prés.




__________
Kenji
0
le pro masterchief Messages postés 57 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 9 avril 2008
11 déc. 2006 à 22:16
Mais est ce que ce code est un control ocx qui faut que je compile par ce que j'ai seulement le vb2005 express qui ne le permet pas.
0

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

Posez votre question
Utilisateur anonyme
11 déc. 2006 à 22:46
Non, c'est pas un ocs ni dll, tu ajoute un fichier code vide à ton projet et tu colle ce code dedans.
Tu compile, et ensuite un nouveau control apparait dans la liste. Ce control est utilisable que dans ton projet bien sur.


__________
Kenji
0
le pro masterchief Messages postés 57 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 9 avril 2008
12 déc. 2006 à 01:18
Tu compile quoi , dans une blibliothèque de classe? dans un exe?
0
Utilisateur anonyme
12 déc. 2006 à 09:57
Nan, nan, nan. Tu confond tout.
Tu a ton projet qui est une Application Windows, tu ajoute a celui-ci le code que je t'ai passé. Tu compile (tu exectue) ton projet (qui est une application windows) et le contrôle apparait. Tu n'a plus qu'a utiliser celui ci.





__________
Kenji
0
le pro masterchief Messages postés 57 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 9 avril 2008
12 déc. 2006 à 16:03
Merci beaucoup, je vais essayer ça et je vous donne des nouvelles
0
Rejoignez-nous