begin process at 2012 05 28 04:57:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Accèder à un objet depuis Fonction membre de callback statique


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Accèder à un objet depuis Fonction membre de callback statique

mercredi 12 mai 2004 à 15:42:57 | Accèder à un objet depuis Fonction membre de callback statique

Jeffray

Bonjour,

J'ai une fonction membre statique de callback, qui correspond à une classe de fenêtre que j'enregistre.
Comment faire pour transmettre à cette fonction des pointeurs d'objets que j'ai créé ?
(Je n'utilise aucune variable globale)
mercredi 12 mai 2004 à 15:44:35 | Re : Accèder à un objet depuis Fonction membre de callback statique

Jeffray

J'ai oublié le + important : Merci !
mercredi 12 mai 2004 à 16:36:52 | Re : Accèder à un objet depuis Fonction membre de callback statique

neohp

'lut

ce callback peut ils prendre des paramètres ?? si oui, lesquels ?



neoh_p [=- coding spirit -=]
------- since 1999 ------
mercredi 12 mai 2004 à 16:57:17 | Re : Accèder à un objet depuis Fonction membre de callback statique

Jeffray

Les paramètres classiques : voici la déclaration de la fonction :


static LRESULT CALLBACK FenetrePrincipale::ProcedurePrincipale( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

J'ai fait quelques recherches : dans les explications que j'ai pu trouver, il était question des fonctions SetWindowLong() ou SetProp(), mais je ne vois pas le rapport :)

Il faut dire aussi que je débute, et je ne vois pas comment procéder...

Merci !
mercredi 12 mai 2004 à 18:36:32 | Re : Accèder à un objet depuis Fonction membre de callback statique

ymca2003

regroupe toute les données à associer à ta fenêtre dans une structure ou une classe :
struc Data
{
};

lors de la création de ta fenêtre, passe un pointeur sur cette structure comme dernier paramètre à CreateWindow

dans ta WndProc, qd tu recoit WM_CREATE, tu récupère ce pointeur et tu l'associe au hWnd par SetWindowLong.

pour les autres messages, tu le récupère par GetWindowLong :

// affecter l'objet TMainFrame lors de la création de la fenêtre, contenu dans la
// structure CREATESTRUCT pointée par lParam
if(uMsg == WM_CREATE)
{
LPCREATESTRUCT lpcs = (LPCREATESTRUCT) lParam;
SetWindowLong(hWnd, GWL_USERDATA, (LONG)lpcs->lpCreateParams);
}

// récupération objet TMainFrame associé à la fenêtre
TMainFrame* pWnd = (TMainFrame*) GetWindowLong(hWnd, GWL_USERDATA);
if(!pWnd)
return DefWindowProc(hWnd, uMsg, wParam, lParam);


exemple tiré de ma source "Paint" qui utilise cette technique.
mercredi 12 mai 2004 à 23:03:42 | Re : Accèder à un objet depuis Fonction membre de callback statique

Jeffray

J'ai compris le truc, çà marche !

Un grand merci !


Cette discussion est classée dans : fonction, membre, callback, accèder, statique


Répondre à ce message

Sujets en rapport avec ce message

CallBack dans fonction membre [ par Matt67 ] Bonjour, Je desir mettre une callback (waveInProc) dans une classe en tant que fonction membre...Comment puis-je m'y prendre, un petit exemple serait Pointeur sur fonction ? [ par tintin72 ] Bonjour, J'ai un petit souci avec les pointeurs sur fonction. Voilà, j'ai une fonction qui prend comme argument un pointeur sur fonction: void maFonct [C++ API win] fonction membre pour traiter des messages [ par THEwarrior333 ] [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 pr Accecer a une fonction membre avec des iterateurs (encore une ch'tite question sur la stl) [ par Amanobuo ] Salut, toujours avec la stl en ce moment ! Cette fois j ai un vecteur d'objet et je cherche a supprimer un element du vecteur suivant les proprietes d implementation d'une fonction callback pour l'appel à une DLL [ par 3asfoura ] Hi all!J'utilise visual c++ 6.0.J'ai une DLL client dont je connais seulement les noms de fonctions visualisés sous "Dependency walker". Je veux imple Fonction membre dans un thread [ par Galmiza ] Bonjour, J'essaie de créer un thread et d'y lancer une fonction 'ClientSend' membre d'une classe avec: m_SendThread = CreateThread(NULL, 0, &ClientSe Probleme de timer avec fonction de callback [ par julienbj ] Bonjour,j'ai un petit souci lors de la création d'un timer avec une fonction de callback.Voici un bout de code qui ne fonctionne pas, mais je ne vois Passer un pointeur sur une instance à une fonction membre static ? [ par tintin72 ] Bonjour, j'ai un problème pour passer un pointeur sur une instance ou l'adresse de l'instance à une fonction callback Windows. Je m'explique J'ai créé Utilisation d'une fonction d'une fonction membre d'une classe [ par guydegnol ] Bonjour,J'aimerais utiliser une fonction ayant comme argument une fonction membre d'une classe.Vous pouvez trouver un exemple tres simple de ce que je Utilisation de fonctions Callback [ par N0euX ] Bonjour a tous,</o:


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales