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 :

ClassView ActiveX


Sujet :

MFC

  1. #1
    Membre confirm� Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par d�faut ClassView ActiveX
    Bonjour j'ai cr�� un petit ActiveX dans Visual c++ 6 et j'y ai ins�r� un bouton CONFIG (j'ai enregistr� le projet sous le nom de "active").
    Je lui ai attribu� les propri�t�s suivantes:
    ID: IDC_conf
    Caption: CONFIG

    J"ai aussi mis comme ID pour ma fen�tre IDD_FENETRE_ACTIVE
    Ensuite je clique 2 fois sur mon bouton pour lui ajouter la fonction membre suivante: Onconf

    Puis je vais dans mon ClassWizard:
    Projet: active
    Class_name: CActiveCtrl (il y a aussi CActivePropPage)
    Objects_IDs: 2 possibilit�s: CActiveCtrl ou IDC_conf

    Je choisis CActiveCtrl et dans la case message � droite je cherche M_CREATE : je clique deux fois dessus pour aller sur la partie de code correspondante et je rajoute le bout de code fournit dans la FAQ de Farscape
    http://c.developpez.com/faq/vc/?page...tivexAddDialog
    Ce qui donne:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // CActiveCtrl message handlers
     
    int CActiveCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
    {
    	if (COleControl::OnCreate(lpCreateStruct) == -1)
    		return -1;
     
    	// TODO: Add your specialized creation code here
    	m_Active.Create(IDD_MYDIALOG, this);	
    	return 0;
    }
    Pour finir je vais dans ClassView, puis CActiveCtrl puis je vais �diter ma fonction OnDraw, ce qui devient:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // CActiveCtrl::OnDraw - Drawing function
     
    void CActiveCtrl::OnDraw(
    			CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
    {
    	// TODO: Replace the following code with your own drawing code.
    	pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
    	pdc->Ellipse(rcBounds);
    	if(m_Active.m_hWnd)
                 m_Active.MoveWindow(rcBounds, TRUE);
    }
    Je compile et j'obtiens 5 erreur:

    error C2065: 'm_Active' : undeclared identifier
    error C2228: left of '.m_hWnd' must have class/struct/union type
    error C2228: left of '.MoveWindow' must have class/struct/union type
    error C2228: left of '.Create' must have class/struct/union type
    error C2065: 'IDD_MYDIALOG' : undeclared identifier
    Je remarque donc que ma variable m_Active n'est pas d�clar�e.
    Je retourne dans le ClassWizard sous l'onglet Member Variables et 'obtiens ceci:

    Je peux seulement cr�er une classe et non une variable!! Aussi bien avec CActiveCtrl que CActivePropPage comme class_name !!

    Je suis donc coinc�...

    Lors de la cr�ation de mon ActiveX ais-je omis de faire quelque chose ou pas?

    Comment puis je r�soudre ce probl�me?

  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,
    je ne suis pas bien sur d'avoir compris ton probleme.
    pour ajouter une classe utilise le bouton add class a droite sur ton image de ton post precedent.
    les variables non issues de controles comme une boite de dialogue ou les variable utilisateurs (m_Active) sont a declar�es manuellement dans la classe appropri�e .


  3. #3
    Membre confirm� Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par d�faut
    Non c'est que � ce stade l� du programme, le debogger me trouve une erreur correpondante � une variable on d�clar�e. Je vais donc dans le ClassWizard pour faire une d�claration mais il veux d'abord que je cr�� une class et je ne comprends pas pourquoi?

    Moi j'ai simplement besoin de d�clarer une variable pour pouvoir compiler mon activeX (bidon certes!) et voir comment l'activeX et le programme conteneur interagissent entre eux.

    Je sais pas si tu me suis... c'est un peu d�bile mais...

    Merci � toi!

  4. #4
    Membre confirm� Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par d�faut
    J'ai repris ton fichier TestOCX pour voir ce que tu as fais.
    J'enregistre le controle dans la base de regitre windows et lorsque je l'importe dans une application MFC, j'ai un carr� blanc et non ta fen�tre avec avec ton edit box, check box, radio button, et bouton! Et lorsque j'affiche les propri�t�s de cette page blanche et que je clic sur Control, je vois ta fen�tre IDD_PROPPAGE_TESTOCX !

  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
    j'ai refais le test avec visual VC 2005 ,
    ok l'ocx ne s'affiche pas dans les ressources et c'est voulu ,mais il s'affiche bien lorsque le programme est execut�.

  6. #6
    Membre confirm� Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Par d�faut
    Oui c'est ce que je remarque aussi.

    Merci pour ton aide Farscape !!

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

Discussions similaires

  1. [VB6] Comment Debugger une activeX ??
    Par Berns dans le forum VB 6 et ant�rieur
    R�ponses: 8
    Dernier message: 19/05/2003, 17h34
  2. [ActiveX] Propri�t� "Picture" dans un contr�le util
    Par Ricou13 dans le forum VB 6 et ant�rieur
    R�ponses: 3
    Dernier message: 14/12/2002, 15h59
  3. PB d'import avec les ActiveX sous BCB6
    Par dergen dans le forum C++Builder
    R�ponses: 4
    Dernier message: 29/11/2002, 10h18
  4. [ActiveX] Visibilit� d'une propri�t�
    Par paradise dans le forum Composants VCL
    R�ponses: 2
    Dernier message: 14/11/2002, 18h33
  5. ActiveX : linker en statique ?
    Par tut dans le forum MFC
    R�ponses: 8
    Dernier message: 07/11/2002, 10h24

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