threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention 1 novembre 2007
-
11 nov. 2006 à 23:38
threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention 1 novembre 2007
-
12 nov. 2006 à 11:55
Bonsoir, j'ai beau cherché je trouve pas alors je viens m'adresser a vous. Dans un UserControl j'ai besoin d'ajouter une propriété icon tout comme celle des Forms (MouseIcon ou Icon, ...) seulement voila ... je connais IPictureDisp pour les images mais le filtre pointe sur les images utilisable par vb6 sois gif, bmp, ... et j'aimerais plutot avoir des ico...
Bref bref je voulais savoir s'il y'avais déjà un type que je pourrais utilisé ou s'il va falloir que je me créer moi même ma propre feuille ?
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 12 nov. 2006 à 11:47
dans le UC :
Option Explicit
Private Const DI_NORMAL = &H3
Private Declare Function DrawIconEx Lib "user32" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As
Long
Private M_oIcoPicture As StdPicture
'
'
Public Property Get myTB_Ico_Picture() As StdPicture
Set myTB_Ico_Picture = M_oIcoPicture
End Property
Public Property Set
myTB_Ico_Picture(ByRef P_oValue As StdPicture)
Set M_oIcoPicture = P_oValue
UserControl.PropertyChanged "myTB_Ico_Picture"
UserControl_Refresh
End Property
'
Private Sub UserControl_Initialize()
picIcon.AutoRedraw = True
End Sub
'
Private Sub UserControl_Refresh() ' C'est une
fonction que j'appelle pas un evenement
If (Not M_oIcoPicture Is Nothing) Then
PB_DrawIcon picIcon, M_oIcoPicture, 24, 24
Else
PB_DrawIcon picIcon, LoadResPicture(101, vbResIcon), 24, 24
End If
End Sub
'
'
Public Sub PB_DrawIcon(ByRef P_oPictureBox As PictureBox, ByRef P_oPictureDisp As IPictureDisp, ByVal P_sWidth As Single, ByVal P_sHeight As Single)
Call DrawIconEx(P_oPictureBox.hdc, 0, 0, P_oPictureDisp.Handle, P_sWidth,
P_sHeight, 0, 0, DI_NORMAL)
End Sub
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 12 nov. 2006 à 07:23
TMONOD : oui et non : les données d'une icône a la même structure que celles d'une bitmap, mais l'en-tête est différent : renomme un bmp 24 bits en .ico, et essaye de l'affecter en icone de form VB, tu va voir ce qu'il va te dire ;)
threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention 1 novembre 2007 12 nov. 2006 à 09:59
Bonjour :) Aie Aie Aie effectivement j'ai pas du être clair ...
Quand on fait un Controle Utilisateur on peut y associer des propriétés que l'on peut remplir en utilisant la propriété dans le code, ou en passant par la fenêtre de propriété de VB6.
Quand je met le type IPictureDisp pour mon icon la fenetre qui est proposé par VB6 quand on clique dans les propriétées pour changer l'icon permet de trouvé un bmp, un gif, ect. Seulement j'ai besoin que cette fenetre ai un filtre tel que *.ico
J'ai vu en passant par la fenetre de propriété d'une form pour changer l'icon de celle ci, qu'il existe surement déjà un type permettant d'acceder a une fenetre de fichier avec le filtre *.ico.
Ma question etais et est toujours de savoir quel type mettre pour obtenir le la boite de dialog de fichier avec le filtre *.ico ?
threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention 1 novembre 2007 12 nov. 2006 à 10:13
Ha et pour IPictureDisp et Picture j'ai déjà esssayer et quand on selectionne un *.ico j'ai un joli message qui me dit : "microsoft visual basic : image incorrecte"
Je vais essayé avec le StdPicture mais je ne m'attend pas a un miracle vu que celui aussi filtre sur du bmp et du dib
threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention 1 novembre 2007 12 nov. 2006 à 10:26
Ha deux seconde :) ptet que mes icons sont pourris finalement :D mais bon ca n'empeche que j'aimerais avoir un icon dialog plutot qu'une bitmap dialog (meme si c'est bien un icon au final)
threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention 1 novembre 2007 12 nov. 2006 à 10:43
j'ai bien microsoft ils mettent dans leur environement et dans leur propres ocx des controles non disponible pour les autres ... doh
Niveau du code c'est assez simple mais je te donne ca tout de suite après quelques copier coller
Private M_oIcoPicture As StdPicture
Public Property Get myTB_Ico_Picture() As StdPicture
Set myTB_Ico_Picture = M_oIcoPicture
End Property
Public Property Let myTB_Ico_Picture(ByRef P_oValue As StdPicture)
Set M_oIcoPicture = P_oValue
UserControl.PropertyChanged "myTB_Ico_Picture"
UserControl_Refresh
End Property
' C'est une fonction que j'appelle pas un evenement
Private Sub UserControl_Refresh()
If (Not M_oIcoPicture Is Nothing) Then
PB_DrawIcon picIcon, M_oIcoPicture, 24, 24
Else
PB_DrawIcon picIcon, LoadResPicture(101, vbResIcon), 24, 24
End If
End Sub
Public Sub PB_DrawIcon(ByRef P_oPictureBox As PictureBox, ByRef P_oPictureDisp As IPictureDisp, ByVal P_sWidth As Single, ByVal P_sHeight As Single)
Call DrawIconEx(P_oPictureBox.hdc, 0, 0, P_oPictureDisp.Handle, P_sWidth, P_sHeight, 0, 0, DI_NORMAL)
End Sub
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 12 nov. 2006 à 10:58
nombre de param invalide...
tu es sûr que ta déclaration de drawiconex est ok?
Private Declare Function DrawIconEx Lib "user32" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long
(et non, pas de balise [code])
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention 1 novembre 2007 12 nov. 2006 à 11:01
Bein heu oui ma déclaration est valide car avec les LoadResPicture ca passe très bien ... je vais essayer de voir en lui balancant un icon autrement mais bon aucun doute elle est bonne.
Mais j'ai mis des breakpoints au debut de chaque fonction et lors du changement de la propiété ca rentre meme pas dans le Let ...
threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention 1 novembre 2007 12 nov. 2006 à 11:42
Haaa ca marche :) ouai bon bein heu ... c'est pas la solution idéal et je me pencherais sur l'histoire du filtre *.ico quand je pourrais mais bon ... quoi que atta :D en faite c'est ptet plus grave que ce soit un ico :D
Au passage tu sais pas comment je pourrais différencier le fait que ce soit un ICO ou un BMP ?
threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention 1 novembre 2007 12 nov. 2006 à 11:55
Ouai merci :) on a exactement la même maintenant je vais chercher une method qui permet de dessiner mon image bmp avec de la transparence comme le fais drawiconex .... bitblt le fait si je me souvient bien ... faut que je reregarde MERCI :D