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?