[MFC] Fonction CALLBACK membre d'une classe...

Fonction CALLBACK membre d'une classe... [MFC] - Programmation

Marsh Posté le 23-07-2002 à 12:01:44    

Salut,
J'ai délcaré la fonction CALLBACK servant à EnumWindows dans la classe de ma Dialog:
 
public:
...
 void GetWnds(void);
 BOOL CALLBACK EnumAllWindows(HWND hWnd, LPARAM lParam);
...
 
et définie de la sorte :
 
BOOL CALLBACK CMaDialogDlg::EnumAllWindows(HWND hWnd, LPARAM lParam)
{
 return true;
}
 
void CMaDialogDlg::GetWnds()
{
 EnumWindows((WNDENUMPROC)EnumAllWindows,(LPARAM)Var);
}
 
et voila l'erreur :
 
'type cast' : cannot convert from '' to 'int (__stdcall *)(struct HWND__ *,long)'
 
Quelqu'un peut-il m'aider à éviter cette erreur ? merci
 ANT

Reply

Marsh Posté le 23-07-2002 à 12:01:44   

Reply

Marsh Posté le 23-07-2002 à 12:07:15    

déclare ta callback comme ceci plutot :
 
BOOL LRESULT CALLBACK EnumAllWindows(HWND hWnd, LPARAM lParam);  
 
à vérifier néanmoins, sinon :
 
BOOL CALLBACK WINAPI EnumAllWindows(HWND hWnd, LPARAM lParam);  
 


Message édité par Harkonnen le 23-07-2002 à 12:07:32

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 23-07-2002 à 12:11:11    

La première solution crée une quarantaine d'erreurs...
La 2ème ne change rien, toujours la même erreur !
 
Il faut ajouter WINAPI ou LRESULT aussi dans la définition ? J'ai fait les 2 mais c pareil de toute façon

Reply

Marsh Posté le 23-07-2002 à 12:19:57    

j'ai déja eu ce genre d'erreur, c clair !!! si j'avais pas ingurgité ces anti inflammatoires, j'arriverais à penser correctement :d (cf blabla@prog)
 
essaie de déclarer ta callback en static pour voir


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 23-07-2002 à 12:21:33    

ta "fonction" c'est pas une fonction, c'est une méthode : le premier paramètre (invisible) est le pointeur "this"
 
tu dois la déclarer hors de la classe


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-07-2002 à 13:22:51    

antp a écrit a écrit :

ta "fonction" c'est pas une fonction, c'est une méthode : le premier paramètre (invisible) est le pointeur "this"
 
tu dois la déclarer hors de la classe
 




 
Comment alors accéder aux variables membres de la classe (de ma dialog) ? Comment récupérer le paramètres this invisible ?

Reply

Marsh Posté le 23-07-2002 à 13:38:19    

C'est bon, je me suis débrouillé pour passer en lParam le hwnd du controle qui m'intéressait, donc merci et a+  :hello:

Reply

Marsh Posté le 23-07-2002 à 13:48:53    

antsite a écrit a écrit :

 
 Comment récupérer le paramètres this invisible ?




 
bhen "this" justement :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed