Bonjour,

J'ai une application MFC sur un projet Dialog. L'idée de départ c'était de faire des boutons qui agirait le temps qu'on reste appuyer dessus et pas devoir appuyer plusieurs fois pour obtenir un resultat.


Cette erreur est survenue quand j'ai voulu faire un subclassing de mes controles buttons, la raison pour laquelle j'ai fait du subclassing c'est afin que mes boutons n'agiraient pas que au simple clik de souris (BN_CLICKED) et c'est malheureusement que ça de disponible sur un dialog mais c'est de permettre à mes controls d'intercepter également les msg events windows, notamment le OnLButtonDown (click bouton souris gauche).

mon programme compile bien mais donne une erreur Assert Failed
lorsque je laisse la ligne qui suit dans mon OnInitDialog() :

ProjetDlg.cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
..
 
m_button15.SubclassDlgItem(IDC_BUTTON_ZOOM_IN, this);
 
..

J'ai pour le header de mon projet principal:
ProjetDlg.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 
..
 
public: 
 
CButton	m_button15;
 
...
d'apres que j'ai pu comprendre cela viendrait du fait que mon control IDC_BUTTON_ZOOM_IN serait deja lié à un Handle avant.
j'ai dans mon OnInitDialog avant le SubClassdlg() ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
...
HICON hbitmap24bits = (HICON)LoadImage(AfxGetResourceHandle(), 
		 MAKEINTRESOURCE (IDI_ICON2),
		 IMAGE_ICON,
		 16,16,
		 LR_LOADMAP3DCOLORS  | LR_DEFAULTSIZE  | LR_CREATEDIBSECTION);
 
 
 
 
	m_button15.SetIcon(hbitmap24bits);
 
...

Une autre solution mais qu'il faut éviter est d'ajouter une classe avec le wizard par exemple CButtonEvent et de la faire dériver de CButton. Car alors il est pas possible d'acceder correctement aux methodes de la classe principale CProjetDlg. L'idée étant de rester avec un seule classe principale.

Pouvez vous m'aider avec une solution adaptée ?

Merci