HDC et Parent [Résolu]

Signaler
Messages postés
17
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
16 septembre 2008
-
Messages postés
17
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
16 septembre 2008
-
Bonjour à tous,


En tapant dans l'aide, je me suis aperçu que la propriété Parent ne s'applique pas losrque qu'un USerControl en ai la cible.

Je vous donne plus de détail :  j'ai fait un UserControl qui me permet,
entre autre d'avoir un texte déroulant. Puis j'ai décidé de faire un
autre UserControl, une sorte de TabDialog qui utlise le UserControl
précédemment cité. Maintenant, je veux pouvoir accéder au hDC du
UserControl conteneur et le copier sur le hDC de mon TexteDéroulant.
J'ai donc procéder comme suit :


Sur le code du TabDialog :

rc = LblMust(i).GetDCFromParent(LblMust(i).Left / ModX, 0,
LblMust(i).Width / ModX, LblMust(i).Height / ModY, True)      'Jappelle
la fonction du texte déroulant dénommé LblMust(i)


Sur le code du LblMust(i) :Public Function GetDCFromParent(Optional ByVal nXSrc As Long 0, Optional ByVal nYSrc As Long 0, _

    Optional ByVal nWidthSrc As Long 1000, Optional ByVal nHeightSrc As Long 1000, _

    Optional ByVal RefreshAfter As Boolean = True) As Boolean

   

    With UserControl

        DoEvents

        On Error Resume Next

        GetDCFromParent = StretchBlt(.hDC, 0, 0, .Width / ModX, .Height / ModY, .Parent.hDC, nXSrc, nYSrc, nWidthSrc, nHeightSrc, SRCCOPY)

        UserControl.Refresh

    End With

    If RefreshAfter = True Then Call Refresh
End Function


Si j'utilise cette fonction en mettant le LblMsut directement sur une
form, pas de problème, ca marche nikel. Mais si je le met sur un
UserCOntrol comme précédemment décrit, la fonction me retourne
GetDCFromParent = False parce qu'il n'aime pas du tout
UserControl.Parent.hDC.


Si vous avez une solution, cela me serait d'une très grande aide.


Merci par avance de vos réponses.

Un code et ça repart  

5 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
Salut,

dans ce cas, USERCONTROL est ton modèle

tu voudrais jouer avec l'instance, il faut alors passer par cette instance dans ton modèle

çà doit donner quelque chose du genre with usercontrol.extender, à noter que tu dois avoir fais un propriété public pour le hDC, qui retourne usercontrol.hDC

++


<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
labelmust c'est un label ou un contrôle perso?

public property get hDC as long
hDC = usercontrol.hdc
end property

si c'est un label, pas de solution car windowless
++

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
17
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
16 septembre 2008

Ah oui, effetcivement, j'avais oublié de fabriquer le hDC du TabDialog. Justement, je me rappelle avoir chercher à le faire pour mon LabelMust mais je n'ai pas trouvé comment faire. Tu saurais aussi me donner la réponse là dessus ?

Un code et ça repart  
Messages postés
17
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
16 septembre 2008

Hop là. Merci, j'ai trouvé la façon de déclaré Public Property Get hDC() dans les codes.

Encore merci du coup de main.

Un code et ça repart  
Messages postés
17
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
16 septembre 2008

C'est un control perso.

Ca marche bien maintenant... Grâce à toi .

Un code et ça repart