HDC et Parent

Résolu
ajdw Messages postés 17 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 16 septembre 2008 - 16 sept. 2008 à 14:54
ajdw Messages postés 17 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 16 septembre 2008 - 16 sept. 2008 à 16:46
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

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
16 sept. 2008 à 15:15
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
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
16 sept. 2008 à 15: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
3
ajdw Messages postés 17 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 16 septembre 2008
16 sept. 2008 à 15:21
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  
0
ajdw Messages postés 17 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 16 septembre 2008
16 sept. 2008 à 15:42
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  
0

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

Posez votre question
ajdw Messages postés 17 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 16 septembre 2008
16 sept. 2008 à 16:46
C'est un control perso.

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

Un code et ça repart  
0
Rejoignez-nous