Toadstool
Messages postés16Date d'inscriptionsamedi 4 septembre 2004StatutMembreDernière intervention31 mars 2007
-
6 sept. 2004 à 13:18
Toadstool
Messages postés16Date d'inscriptionsamedi 4 septembre 2004StatutMembreDernière intervention31 mars 2007
-
8 sept. 2004 à 16:57
J'ai Visual C++ 6 Introductory Edition et j'ai programmé une classe censée représenter une fenetre mais quand dans le constructeur de la classe j'ecrit :
cannot convert from 'long (__stdcall MyWindow::*)(struct HWND__ *,unsigned int,long,unsigned int)' to 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'
Si il y a quelqu'un qui comprend pourquoi et peut etre sait comment y remedier je serais sauvé (g pas envie d'utiliser les mfc ni tout autre forme de bibliothèque de ce genre meme mieux programmé, g juste besoin d'un petite classe gerant la fenetre)
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 6 sept. 2004 à 13:46
si la WndProc est dans une classe, elle doit être déclarée static. Si dans cette WndProc tu as besoin d'accéder aux membres non statiques, voici la mémthode :
- lors de la création de la fenêtre, mettre un pointeur sur l'objet MyWindow en dernier param de CreateWindow.
- dans la WndProc, lors de la réception de WM_CREATE ou WM_NCCREATE, récupérer ce pointeur par l'intermédiare de la structure CREATESTRUCT pointée par lParam.
- associer ce pointeur à la fenêtre par SetWindowLong() et GWL_USERDATA.
- pour les autres messages, récupérer ce pointeur.
dans mes sources, le programme "Un petir Paint en Win32" utilise cette technique.