Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb de classe MFC

6 réponses
Avatar
Sivaler
Bonjour , j'ai joint un projet utilisant une DLL MFC par project1.exe
http://perso.orange.fr/sivaller/powerta.zip

L'évenement OnPaint de la classe CCroix2 n'est jamais appelé !
Le composant Croix2 installé dans la ressource IDC_DIALOG1 s'appelle
IDC_STATIC3.

Pourquoi ça marche pas ?
Comment on fait pour que le controle ID IDC_STATIC3 soit considérer comme le
controle CCroix2 ?


Merci Bcp.

6 réponses

Avatar
Fabien LE LEZ
On Sat, 28 Apr 2007 20:54:18 +0200, "Sivaler" :

Bonjour , j'ai joint un projet utilisant une DLL MFC par project1.exe


C'est hors-sujet ici. Tu trouveras des gens compétents sur le sujet
dans le forum fr.comp.os.ms-windows.programmation, et dans la
hiérarchie microsoft.public.*

Avatar
ByB
J'ai envie de hurler à la face du monde que Fabien LE LEZ a dit le
28/04/2007 que
On Sat, 28 Apr 2007 20:54:18 +0200, "Sivaler" :

Bonjour , j'ai joint un projet utilisant une DLL MFC par project1.exe


C'est hors-sujet ici. Tu trouveras des gens compétents sur le sujet
dans le forum fr.comp.os.ms-windows.programmation, et dans la
hiérarchie microsoft.public.*


De plus, votre projet ne peut pas être compiler. Voici ce que j'obtiens
avec VC++ 6.0 :

ompiling resources...
C:powertapowerta.rc(172) : fatal error RC1015: cannot open include
file 'respowerta.rc2'.
Error executing rc.exe.
Creating browse info file...
BSCMAKE: error BK1506 : cannot open file '.ReleaseStdAfx.sbr': No
such file or directory
Error executing bscmake.exe.

powerta.dll - 2 error(s), 0 warning(s)

Je vous engage donc à revoir votre fichier zip, et à vous tourner en
effet vers les forums consacrés à la programmation windows, puisque les
MFC sont spécifiques à Microsoft et ne font pas partie du C++ de base.

--
"Pour le pape, le plus dur c'est de ne pas avoir d'homologue avec qui
causer boulot."
(Jean Yanne / 1933-2003)


Avatar
ByB
ByB a émis l'idée suivante :
J'ai envie de hurler à la face du monde que Fabien LE LEZ a dit le 28/04/2007
que
On Sat, 28 Apr 2007 20:54:18 +0200, "Sivaler" :

Bonjour , j'ai joint un projet utilisant une DLL MFC par project1.exe


C'est hors-sujet ici. Tu trouveras des gens compétents sur le sujet
dans le forum fr.comp.os.ms-windows.programmation, et dans la
hiérarchie microsoft.public.*


De plus, votre projet ne peut pas être compiler.


Votre projet ne peut pas être compilé (désolé).

--
Verser de l'argent ès mains d'un percepteur ressemble terriblement à
l'opération niaise qui consiste en le jet d'une pareille somme dans un
abîme probablement sans fond.
[Alphonse Allais]



Avatar
Sylvain
Sivaler wrote on 28/04/2007 20:54:

L'évenement OnPaint de la classe CCroix2 n'est jamais appelé !


normal, dans le projet joint cette classe n'est jamais utilisée, pas
même présente dans le projet.

pour que Croix soit dessiné, il doit être créé; dans l'""esprit"" MFC
cela peut se faire en subclassant un Static avec votre classe Croix.
pour cela vous devrez définir:

dlg.h
//{{AFX_DATA(CAdelDlg)
enum { IDD = IDD_DIALOG1 };
CCroix2 croix;
//}}AFX_DATA

dlg.cpp
void CAdelDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAdelDlg)
DDX_Control(pDX, IDC_STATIC3, croix);
//}}AFX_DATA_MAP
}

Le composant Croix2 installé dans la ressource IDC_DIALOG1 s'appelle
IDC_STATIC3.


non, la classe Croix est inconnu de l'éditeur de ressource de VS, la
seule certitude ici est: l'instance de Croix devra utiliser le HWND créé
pour le static d'identifiant IDC_STATIC3

Pourquoi ça marche pas ?
Comment on fait pour que le controle ID IDC_STATIC3 soit considérer comme le
controle CCroix2 ?


ci-avant.
Sylvain.

Avatar
Sylvain
ByB wrote on 29/04/2007 12:33:

De plus, votre projet ne peut pas être compiler. Voici ce que j'obtiens
avec VC++ 6.0 :
ompiling resources...
C:powertapowerta.rc(172) : fatal error RC1015: cannot open include
file 'respowerta.rc2'.


les rc2 ne servent généralement à rien et c'est le cas ici; il suffit de
commenter l'include.

Je vous engage donc à revoir votre fichier zip,


le projet n'est pas en cause pour ce seul rc2 inutile, par contre il
oublie d'utiliser Croix2.? sur qui porte la question.

Je vous engage donc à revoir votre fichier zip, et à vous tourner en
effet vers les forums consacrés à la programmation windows, puisque les
MFC sont spécifiques à Microsoft et ne font pas partie du C++ de base.


ça c'est exact.

Sylvain.

Avatar
Sivaler
Merci mais j'ai trouvé avec DDX_CONTROL
"Sylvain" a écrit dans le message de
news:4634c034$0$27371$
Sivaler wrote on 28/04/2007 20:54:

L'évenement OnPaint de la classe CCroix2 n'est jamais appelé !


normal, dans le projet joint cette classe n'est jamais utilisée, pas
même présente dans le projet.

pour que Croix soit dessiné, il doit être créé; dans l'""esprit"" MFC
cela peut se faire en subclassant un Static avec votre classe Croix.
pour cela vous devrez définir:

dlg.h
//{{AFX_DATA(CAdelDlg)
enum { IDD = IDD_DIALOG1 };
CCroix2 croix;
//}}AFX_DATA

dlg.cpp
void CAdelDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAdelDlg)
DDX_Control(pDX, IDC_STATIC3, croix);
//}}AFX_DATA_MAP
}

Le composant Croix2 installé dans la ressource IDC_DIALOG1 s'appelle
IDC_STATIC3.


non, la classe Croix est inconnu de l'éditeur de ressource de VS, la
seule certitude ici est: l'instance de Croix devra utiliser le HWND créé
pour le static d'identifiant IDC_STATIC3

Pourquoi ça marche pas ?
Comment on fait pour que le controle ID IDC_STATIC3 soit considérer
comme le


controle CCroix2 ?


ci-avant.
Sylvain.