Fonction CALLBACK membre d'une classe... [MFC] - Programmation
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);
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
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 (cf blabla@prog)
essaie de déclarer ta callback en static pour voir
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
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 ?
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+
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
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