Equivalent IPictureDisp pour les Icons ICO ? [Résolu]

threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 11 nov. 2006 à 23:38 - Dernière réponse : threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention
- 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 ?

Merci d'avance.
Afficher la suite 

Votre réponse

20 réponses

Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 12 nov. 2006 à 11:08
3
Merci
oui j'ai vu, et voici comment faire :
en remplaçant let par set....
(donc en code-form à pré-appeler par set)

là çà marche
++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de PCPT
Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 12 nov. 2006 à 11:47
3
Merci
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

<small>Coloration
syntaxique automatique [AFCK] </small>
       

sur la Form, par les propriétés en édition, c'est ok.

par le code il faut appeler :

Private Sub Form_Load()
    Set 
UserControl11.myTB_Ico_Picture  = LoadPicture("C:\ico.ico")
End Sub

<small>Coloration
syntaxique automatique [AFCK]</small>
       

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de PCPT
Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 12 nov. 2006 à 11:55
3
Merci
vbPicTypeNone 0 Image vide
vbPicTypeBitmap 1 Image bitmap (fichiers .bmp)
vbPicTypeMetafile 2 Métafichier (fichiers .wmf)
vbPicTypeIcon 3 Icône (fichiers .ico)
vbPicTypeEMetafile 4 Métafichier étendu (fichiers .emf)

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de PCPT
TMONOD 260 Messages postés mardi 25 novembre 2003Date d'inscription 6 novembre 2009 Dernière intervention - 12 nov. 2006 à 00:31
0
Merci
Bonsoir,
Que les "pros" m'arrêtent si je me trompe, mais un icone n'est jamais qu'un bmp dont on a remplacé l'extension par .ico , non ?

Jcbé[^]
Commenter la réponse de TMONOD
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 12 nov. 2006 à 01:53
0
Merci
tu te trompes ^^
Commenter la réponse de PCPT
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 12 nov. 2006 à 01:55
0
Merci
threadom
-> IPictureDisp, Picture, stdpicture, etc....
ta question n'est pas clair, IPictureDisp devrait fonctionner tout de même

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Commenter la réponse de PCPT
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 12 nov. 2006 à 07:23
0
Merci
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 ;)
Commenter la réponse de cs_DARKSIDIOUS
threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 12 nov. 2006 à 09:59
0
Merci
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 ?
Commenter la réponse de threadom
threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 12 nov. 2006 à 10:13
0
Merci
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
Commenter la réponse de threadom
threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 12 nov. 2006 à 10:15
0
Merci
tadammm stdpicture donne la même chose ... on peu selectionné l'icon mais image inccorecte
Commenter la réponse de threadom
threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 12 nov. 2006 à 10:26
0
Merci
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)
Commenter la réponse de threadom
threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 12 nov. 2006 à 10:29
0
Merci
Avec un icon correct j'ai "nombre d'arguments incorrect ou affectation de la propriété incorrecte" ...
Commenter la réponse de threadom
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 12 nov. 2006 à 10:32
0
Merci
pour çà, va nous falloir voir ton code.
pour un icon dialog, à par en le faisant toi même, j'ai un doute
en tout cas, msdn muette à ce sujet

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Commenter la réponse de PCPT
threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 12 nov. 2006 à 10:43
0
Merci
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

 heu ca marche ca ? 
Commenter la réponse de threadom
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 12 nov. 2006 à 10:58
0
Merci
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
Commenter la réponse de PCPT
threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 12 nov. 2006 à 11:01
0
Merci
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 ...
Commenter la réponse de threadom
threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 12 nov. 2006 à 11:30
0
Merci
pas trop bien compris mdr :) mais bon je vais déjà remplacé je vais voir ou ca mène.
Commenter la réponse de threadom
threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 12 nov. 2006 à 11:42
0
Merci
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 ?
Commenter la réponse de threadom
threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 12 nov. 2006 à 11:45
0
Merci
ok :) IPictureDisp.type
bitmap = 1
? = 2
icon = 3

:) merci allez hop je valid la reponse c'est pas la solution voulu mais elle est encore mieux.
Commenter la réponse de threadom
threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 12 nov. 2006 à 11:55
0
Merci
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
Commenter la réponse de threadom

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.