Bonjour !
Je developpe une petite appli sous windows, sans utiliser les MFC.
Je souhaite ouvrir une fenetre du type pop-up pour y mettre des outils de l'application (genre comme les palettes flottantes de photoshop)
Pour ce faire, je declaire une window class :
Puis j'ouvre ma fenetre avec createWindow()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 maWindowClass.style = 0; maWindowClass.lpfnWndProc = maFonction; maWindowClass.cbClsExtra = 0; maWindowClass.cbWndExtra = 0; maWindowClass.hInstance = parentHINSTANCE; maWindowClass.hIcon = NULL; maWindowClass.hCursor = NULL; maWindowClass.hbrBackground = (HBRUSH)(1 + COLOR_BTNFACE); maWindowClass.lpszMenuName = NULL; maWindowClass.lpszClassName = "Ma fenetre";
Ma fenetre est ouverte par une fonction contenue dans une classe, qui contient dans ses données les infos sur la fenetre, du style :
Je souhaiterais maintenant que la fonction "maFonction" fasse partie de la classe, et c'est là que ca coince !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 maClasse { pleinsDeFonctionsEtDeVariables WNDCLASS maWindowClass; HWND maWindowHWND; }
Si je declare un truc du genre :
J'obtiens ces 2 erreurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 maClasse { pleinsDeFonctionsEtDeVariables WNDCLASS maWindowClass; HWND maWindowHWND; LRESULT CALLBACK maFonction(HWND, UINT, WPARAM, LPARAM); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 error C3867: &'maClasse::maFonction' : liste d'arguments manquante dans l'appel de fonction ; utilisez 'maClasse::maFonction' pour créer un pointeur vers membre error C2440: '=' : impossible de convertir de 'LRESULT (__stdcall maClasse::* )(HWND,UINT,WPARAM,LPARAM)' en 'WNDPROC'
Pourquoi ? Comment ? Je ne vois pas le rapport !
J'ai essayé avec differentes notations, pointeurs.... imposssible de donner l'adresse d'une fonction membre de la classe à ce parametre : maWindowClass.lpfnWndProc
Y'a-t-il une raison precise ? Ou je m'y prend mal ?
PS : je peux m'en passer, mais j'aimerais regrouper toutes les fonctions utiles à un objet dans sa classe, histoire que ce soit plus propre...
Partager