le pro masterchief
Messages postés57Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention 9 avril 2008
-
10 déc. 2006 à 23:21
le pro masterchief
Messages postés57Date d'inscriptionvendredi 4 novembre 2005StatutMembreDerniè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
le pro masterchief
Messages postés57Date d'inscriptionvendredi 4 novembre 2005StatutMembreDerniè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.
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.
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.
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.