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:
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 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; }
Je compile et j'obtiens 5 erreur:
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 remarque donc que ma variable m_Active n'est pas déclarée.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 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?
Partager