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] Ajouter des fonctions � un activeX


Sujet :

MFC

  1. #1
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 297
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 297
    Billets dans le blog
    2
    Par d�faut [ActiveX] Ajouter des fonctions � un activeX
    Bonjour � tous,

    dans la s�rie activeX, je voudrais l'ajout de fonction

    J'ai impl�ment� la FAQ suivante: http://c.developpez.com/faq/vc/?page...tivexAddDialog
    J'obtiens donc un active avec des controles. Dans mon cas, il s'agit de sliders, de combos et d'edit boxes. Je voudrais maintenant impl�menter une m�thode publique dans mon activeX permettant au programme qui utilise ce dernier de r�cup�rer les valeurs de ces contr�les.

    J'ai donc tent� d'impl�menter une m�thode publique GetParameters() dans la classe CMonActiveXCtrl. Ensuite, dans MonProjet (le projet qui utilise MonActiveX), j'inclus le MonActiveX.h. Et l�... omfg!! Ca ne compile plus, et j'obtiens tout un tas d'erreurs en tous genres, dont certaines sont vraiment trop �tranges. Par exemple, dans MonProjet.cpp, dans le InitInstance():
    sur le code:
    CMonProjetDlg dlg;
    m_pMainWnd = &dlg;
    J'obtiens les erreurs:
    error C2440: '=' : cannot convert from 'CTestSynthDlg *__w64 ' to 'CWnd *'
    error C2262: 'dlg' : cannot be destroyed
    Ce sont des erreurs sur le code g�n�r� par la mfc. J'imagine donc qu'il y a des manipulations � faire. Mais quoi?

    Toute proposition est la bienvenue.
    Merci

  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
    Par d�faut
    salut ,
    il sort d'ou le MonActiveX.h ?
    c'est la classe wrapper de l'activex gen�r�e par visual ?

  3. #3
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 297
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 297
    Billets dans le blog
    2
    Par d�faut
    Oui.

    Visual g�n�re, lors de la cr�ation du projet, les fichiers suivants:
    MonActiveX.h, .cpp
    MonActiveXCtrl.h, .cpp
    MonActiveXPropPage.h, .cpp
    et MonActiveX.def, MonActiveX.idl
    J'ai ensuite cr�� une classe � partir de la boite de dialogue que j'ai ajout� � mon activex: MaDialog.

    J'ai un peu avanc� depuis mon dernier post. Maintenant j'arrive � faire le lien entre mon activeX et l'appli qui l'utilise, via MonActiveXCtrl.h.
    Mais je ne parviens toujours pas � r�cup�rer les valeurs de mes controles (ceux qui sont sur MaDialog).

  4. #4
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    il faut que tu rajoutes des attributs publics avec le classwizard

  5. #5
    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
    Par d�faut
    la dialogue doit etre consider�e comme une fenetre fille de la fenetre activex ..
    un GetWindow(GW_CHILD ) devrait te donner le handle sur la dialogue;

  6. #6
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 297
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 297
    Billets dans le blog
    2
    Par d�faut
    Citation Envoy� par nico-pyright(c)
    il faut que tu rajoutes des attributs publics avec le classwizard
    Argh, j'utilise visual2003 (.net). Je n'ai donc pas de classwizzard. Il y a forc�ment l'�quivalent, mais o�?
    J'ai trouv� une piste: dans le "class view", il y a un item 'MonActiveXLib'. Si je 'droite-clique' sur cet item, il y a un 'add variable' qui apparait, mais... il est gris� (je ne peux pas cliquer dessus).

    Citation Envoy� par farscape
    un GetWindow(GW_CHILD ) devrait te donner le handle sur la dialogue;
    Si je fais:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    CWnd* pWnd = GetWindow(GW_CHILD )
    pWnd est bizzare. D�j�, le pWnd->m_hWndOwner=0x00000000. Ce n'est pas logique non? Et puis il n'y a aucune information utilisable dans ce pWnd

  7. #7
    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
    Par d�faut
    attention c'est dans le programme et si tu fais un getwindow a partir du handle de fenetre de l'activex

  8. #8
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 297
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 297
    Billets dans le blog
    2
    Par d�faut
    ok. Alors j'ai essay� diff�rentes choses, mais sans r�sultats. Je suis d�sol�, je suis un peu perdu avec ces activeX

    Il y a quelque chose que je ne comprends pas:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    MonActiveXCtrl* pannel = (MonActiveXCtrl*) this->GetDlgItem(ID_DE_MONACTIVEX_DANS_MONPROJETDLG);
    Logiquement, ce code devrait me donner un handle sur la fen�tre de mon activeX non? Pourtant, cela me renvoie un truc bizzare, non NULL mais inutilisable et avec des 0x00000000 partout

    Rappel: J'ai cr�� un nouveau projet: MonProjetDlg.cpp. MonProjet est un projet 'dialog based' qui comporte une dialog box dont le cpp correspondant est MonProjetDlg.cpp et cette dialog box inclu MonActiveX.

    Et de vous pencher sur mon probl�me... je rame d�r l�

  9. #9
    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
    Par d�faut
    re,
    bon je t'ai bricol� un sample a partir de l'ocx que j'ai realis� ,
    j'ai g�n�r� un projet boite de dialogue qui l'utilise.
    dans le OnInitDialog j'affecte une valeur a l'edit de la boite de dialogue de l'ocx.
    http://farscape.developpez.com/Samples/TestOcxInDlg.zip
    note: l'activex de mon exemple doit etre enregistr� ...

  10. #10
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 297
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 297
    Billets dans le blog
    2
    Par d�faut
    Waaaa merci

    Ton exemple fonctionne nickel, encre merci
    Cependant, j'ai 2 questions, parce que je parviens pas � faire mon propre exemple bas� sur le tien
    * Le projet TestOcxInDlg est de quel type? (exe mfc, activex, ...)
    * Comment obtenir le fichier testocx.h (CTestOcx wrapper class)? Je ne comprends pas d'o� il sort celui-l�

  11. #11
    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
    Par d�faut
    Citation Envoy� par r0d
    Waaaa merci

    Ton exemple fonctionne nickel, encre merci
    Cependant, j'ai 2 questions, parce que je parviens pas � faire mon propre exemple bas� sur le tien
    * Le projet TestOcxInDlg est de quel type? (exe mfc, activex, ...)
    * Comment obtenir le fichier testocx.h (CTestOcx wrapper class)? Je ne comprends pas d'o� il sort celui-l�
    salut,
    1) le projet est un projet boite de dialogue MFC.
    2) je m'en doutais un peu ,d'ou ma question sur le wrapper de classe quelques post plus haut ...
    bon le pb c'est que �a depend de la version de l'ide de VC6 � VC2005 en passant par .net 200x les manipulations ne sont pas les m�mes .
    c'est quoi ta version ?

  12. #12
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 297
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 297
    Billets dans le blog
    2
    Par d�faut
    bonjour,

    il s'agit de visual 2003 .NET (certain disent visual 7).

    [edit]j'ai trouv� quelques infos sur cette classe wrapper sur la msdn ( http://msdn.microsoft.com/library/fr...perclasses.asp ), mais je n'y comprend pas grand chose [/edit]

  13. #13
    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
    Par d�faut
    Sous vc6 la g�n�ration des classes wrapper de l�activex se fait au moment de son int�gration dans le projet.
    Sous VC2005 apr�s avoir choisit le composant dans la barre d�outils, la g�n�ration est effectu�e lorsque l�on associe une variable � l�activex.
    Sous .net 2001 � 2003 je ne m�en souviens plus ! , la v�rit� doit �tre entre les deux..

  14. #14
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 297
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 297
    Billets dans le blog
    2
    Par d�faut
    ok, sous visual 2003 c'est pareil: le wrapper est cr�� lorsqu'on associe une variable � l'activeX! En fait, c'�tait �a qui me manquait depuis le d�but

    Ha, et bien voil� une semaine qui commence bien
    Et encore merci farscape, parce que j'ai bien gal�r� avec cette histoire


+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Ajout des fonctions a l'�tape Execution Script java
    Par Rachid24 dans le forum kettle/PDI
    R�ponses: 1
    Dernier message: 16/12/2008, 12h58
  2. R�ponses: 0
    Dernier message: 01/10/2008, 17h17
  3. [DOM] ajouter des fonctions
    Par guy777 dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 26/06/2008, 10h18
  4. [Carte graphique] ajouter des fonctions :3
    Par san_gohan dans le forum Biblioth�ques
    R�ponses: 2
    Dernier message: 23/06/2008, 08h02
  5. [VBA-E] Ajouter des fonctions dans Excel
    Par Clezio dans le forum Macros et VBA Excel
    R�ponses: 3
    Dernier message: 06/03/2004, 01h18

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