THEwarrior333
Messages postés192Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention30 janvier 2008
-
11 juin 2007 à 20:42
THEwarrior333
Messages postés192Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention30 janvier 2008
-
12 juin 2007 à 20:58
[C++ API windows]
Bonjour!
Comment faire pour que la fonction callback de traitement des messages soit membre d'une classe?
Car je suis confronté au problème suivant:
je crée une fenêtre donc je rempli une struture WNDCLASSEX ( ou
WNDCLASS ) et comme fonction de traitement des messages j'indique (
champ lpfnWndProc ) la fonction membre MyClass::Proc():
cs_vicenzo
Messages postés178Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention25 août 20101 12 juin 2007 à 20:35
Ce que tu peux faire :
Tu cree ton object :
A* a = new A(..);
Ensuite, dans une fonction d'initialisation (ou pourquoi dans le constructreur, mais bon...), tu crée ta fenetre par createwindow, dialogbox, ...... Ces fonctions retourne un HWND.
cs_vicenzo
Messages postés178Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention25 août 20101 11 juin 2007 à 20:53
déclare ta fonction static et ca marchera mieux... Mais n'oublies pas que les membres et fonctions non statiques ne seront plus alors accessible...
Tu donc donc avour un variable globale statique intance de ta classe ou alors tu peux dans ta fonction intercepter WM_CREATE ou WM_NCCREATE et associer ton instance de ta classe par SetWindowLong....
cs_vicenzo
Messages postés178Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention25 août 20101 12 juin 2007 à 19:04
c'est la premiere solution... qui a les désavantage d'avoir une variable globale et qui est alors unique....
La deuxième solution est plus propre (+objet) car pas de variable globale et tu peux associer une instance de ta classe à chaque fenêtre créee...
Vous n’avez pas trouvé la réponse que vous recherchez ?