IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[ActiveX] Creation d'un composant dynamique


Sujet :

MFC

  1. #1
    Membre habitué Avatar de xv-mnt
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 142
    Points : 178
    Points
    178
    Par défaut [ActiveX] Creation d'un composant dynamique
    Je suis newbie dans le monde des MFC et des composants ActiveX.
    Voici le problème : je suis chargé d'intégrer un composant ActiveX (des charts) ds une appli VC6.0.
    Une contrainte est que dans la page où doit s'afficher le composant, je dois créer une instance du composant dynamiquement, au lieu de le poser dans la fenêtre lors du design.
    Je crée une instance du composant, et dès que j'appelle une méthode sur ce composant, la méthode Invoke échoue().

    Le composant est bien déclaré dans la registry et dans le projet (çà marche pour les démos).

    Est-ce possible de faire ainsi, ou bien suis-je obligé d'ajouter le composant dans le fenêtre ?

    çà plante sur l'assert. Mais je ne sais pas ce qu'il faut faire pour setter m_pCtrlSite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    void AFX_CDECL CWnd::InvokeHelper(DISPID dwDispID, WORD wFlags, VARTYPE vtRet,
    	void* pvRet, const BYTE* pbParamInfo, ...)
    {
    	ASSERT(m_pCtrlSite != NULL);    // not an OLE control (not yet, at least)
     
    	if (m_pCtrlSite == NULL)
    		return;
     
    	va_list argList;
    	va_start(argList, pbParamInfo);
    	m_pCtrlSite->InvokeHelperV(dwDispID, wFlags, vtRet, pvRet, pbParamInfo,
    		argList);
    	va_end(argList);
    }

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    un activex possede dans sa classe wrapper une methode create .
    c'est cette methode qui doit etre appelée pour creer l'activex dynamiquement.
    sa plante dans InvokeHelper parce que ton control n'est pas initialisé...

  3. #3
    Membre habitué Avatar de xv-mnt
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 142
    Points : 178
    Points
    178
    Par défaut
    Pourrais-tu me mettre un exemple, avec ce que signifie chaque paramètre ? Ci-dessous la méthode create supposée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
    Que signifient, en particulier, les 1er et dernier paramètres ?

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par xv-mnt
    Pourrais-tu me mettre un exemple, avec ce que signifie chaque paramètre ? Ci-dessous la méthode create supposée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
    Que signifient, en particulier, les 1er et dernier paramètres ?
    dwStyle correspond au style windows ,donc ton cas on peut estimer qu'une valeur acceptable serait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WS_CHILD | WS_VISIBLE
    le dernier parametre nID est l'identifiant windows tu peux mettre par exemple 1.(pas zero)
    c'est l'identifiant renvoyé par GetDlgCtrlID() à partir du handle de fenêtre.
    au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CRect rect;// tu dois l'initialiser avec les bonnes coordonnées....
    // a partir de la dialog.
    MyActivex.Create(WS_CHILD | WS_VISIBLE, rect,this,1);

  5. #5
    Membre habitué Avatar de xv-mnt
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 142
    Points : 178
    Points
    178
    Par défaut
    Merci bcp, çà marche tiptop !!

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    pense a mettre résolu avec le bouton

Discussions similaires

  1. Creation d'un composant de manière dynamique
    Par stanislas dans le forum Langage
    Réponses: 6
    Dernier message: 03/02/2009, 15h47
  2. [syntaxe]Creation table avec nom dynamique
    Par ZuZu dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 23/09/2004, 18h01
  3. Creation d'une vue dynamique ?
    Par Simeans2004 dans le forum Administration
    Réponses: 5
    Dernier message: 01/07/2004, 15h25
  4. [COMPOSANT] Creation particuliere de composant.
    Par Clorish dans le forum Composants VCL
    Réponses: 11
    Dernier message: 25/06/2004, 11h54
  5. [JTabbedPane] Accès à des composants dynamiques
    Par SamRay1024 dans le forum Composants
    Réponses: 8
    Dernier message: 26/05/2004, 13h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo