Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1311 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [VC++] Fonctions Callback help!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++] Fonctions Callback help!!

n°139967
try58
Posté le 16-05-2002 à 17:09:48  profilanswer
 

Voila g un petit souci. J'explique le pb.
J'ai une fct callback qui prend en parametre un unsigned long et ce prototype ne peut pas etre modifie. J'aimerai pouvoir, dans cette fct callback, modifie le texte d'une edit box situe dans ma mainframe. Le pb c que ma fct callback ne connait pas ma mainframe donc je ne peux pas acceder a mon edit box.
 
Comment je peux faire?

mood
Publicité
Posté le 16-05-2002 à 17:09:48  profilanswer
 

n°139971
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 16-05-2002 à 17:12:53  profilanswer
 

ta fonction callback a forcément wparam et lparam en argument. donc tu peux lui passer un pointeur sur la classe de ton controle via un de ces arguments, et ainsi accéder à ses membres.


---------------
J'ai un string dans l'array (Paris Hilton)
n°139980
try58
Posté le 16-05-2002 à 17:23:27  profilanswer
 

Mais c pas la mienne de fct callback. En fait je peux juste remplir le corps de la fct.
Je te montre :
 
typedef struct _BrowseDlgConfig {
  // Configuration flags
  DWORD   bIncludeInstanceIndex:1,
          bSingleCounterPerAdd:1,
          bSingleCounterPerDialog:1,
          bLocalCountersOnly:1,
          bWildCardInstances:1,
          bHideDetailBox:1,
          bInitializePath:1,
          bDisableMachineSelection:1,
          bIncludeCostlyObjects:1,
          bShowObjectBrowser:1,
          bReserved:23;
 
  HWND                hWndOwner;
  LPTSTR              szDataSource;
  LPTSTR              szReturnPathBuffer;
  DWORD               cchReturnPathLength;
  CounterPathCallBack pCallBack;
  DWORD_PTR           dwCallBackArg;
  PDH_STATUS          CallBackStatus;
  DWORD               dwDefaultDetailLevel;
  LPTSTR              szDialogBoxCaption;
} PDH_BROWSE_DLG_CONFIG, *PPDH_BROWSE_DLG_CONFIG;
 
bref au champ pCallBack il y a comme description :
 
pCallBack  
Pointer to the callback function used to update application buffers and controls when a multiple-selection dialog box is configured. For more information, see CounterPathCallback.  
 
je te montre la fct CounterPathCallback :
 
PDH_STATUS __stdcall CounterPathCallBack(
  DWORD_PTR dwArg
);
 
Donc ma fct callback ne peut pas prendre d'autres prototypes !
 
Que faire ... ?

n°139993
try58
Posté le 16-05-2002 à 17:40:06  profilanswer
 

UP!! :cry:

n°139999
Willyzekid
Posté le 16-05-2002 à 17:46:22  profilanswer
 

En regardant rapidement comme ca, je dirais que tu mets les arg dans DWORD_PTR dwCallBackArg; Et comme ca ton prb est réglé


---------------
Horizon pas Net, reste à la buvette!!
n°140002
try58
Posté le 16-05-2002 à 17:53:30  profilanswer
 

Donc ca veut dire que quand je suis dans la methode de ma mainframe qui appelle la fct callback, je mets dans l'argument dwCallBackArg mon pointeur this caste avec DWORD_PTR.
Est ce que je me trompe ou est ce que c ca?

n°140004
Willyzekid
Posté le 16-05-2002 à 17:58:35  profilanswer
 

Ben oui...j'ai pas touché à la programmation windows depuis des lustres mais je dirais ca!
 
ca là:
PDH_STATUS __stdcall CounterPathCallBack
C'est un exemple de ce qui faudrait mettre en pCallBack?
 
(désolé j'ai du mal là, je suis un peu naze)


---------------
Horizon pas Net, reste à la buvette!!
n°140214
try58
Posté le 17-05-2002 à 09:12:27  profilanswer
 

c ca! merci du coup de main :)

n°140241
try58
Posté le 17-05-2002 à 10:01:17  profilanswer
 

J'ai toujours un pb!!
Je passe a ma fct callback une structure data de type t_mydata (que j'ai cree).
Pour cela je fais :
init.dwCallBackArg = (DWORD_PTR)&data;
sachant que init est de type PDH_BROWSE_DLG_CONFIG.
Comment je fais une fois que je suis dans ma fct callback pour acceder a mes champs de ma structure data ?
J'ai essaye en creant un pointeur sur une t_mydata et de lui affecter mon DWORD_PTR que j'ai en argument de ma fct callback. Mais le compilo me dit qu'il ne peut pas convertir un DWORD_PTR en un t_mydata *.
Comment je peux faire?

n°140242
El_gringo
Posté le 17-05-2002 à 10:04:45  profilanswer
 

try58 a écrit a écrit :

J'ai toujours un pb!!
Je passe a ma fct callback une structure data de type t_mydata (que j'ai cree).
Pour cela je fais :
init.dwCallBackArg = (DWORD_PTR)&data;
sachant que init est de type PDH_BROWSE_DLG_CONFIG.
Comment je fais une fois que je suis dans ma fct callback pour acceder a mes champs de ma structure data ?
J'ai essaye en creant un pointeur sur une t_mydata et de lui affecter mon DWORD_PTR que j'ai en argument de ma fct callback. Mais le compilo me dit qu'il ne peut pas convertir un DWORD_PTR en un t_mydata *.
Comment je peux faire?  




 
...Un cast explicite !?
t_mydata* pTesData = (t_mydata*) TonPointeurDWORD;

mood
Publicité
Posté le 17-05-2002 à 10:04:45  profilanswer
 

n°140244
try58
Posté le 17-05-2002 à 10:09:02  profilanswer
 

C bon ca marche !! effectivement mon affectation n'etait pas bonne! j'avais oublie l'etoile dans l'operateur de cast.
Merci les gars!

n°140486
impulse
Posté le 17-05-2002 à 15:33:18  profilanswer
 

[:prosper%20youplaboum]
 
[:impulse]

n°140492
try58
Posté le 17-05-2002 à 15:37:40  profilanswer
 

ce pollueur impulse c pas croyable!! :gun:

n°140497
impulse
Posté le 17-05-2002 à 15:48:37  profilanswer
 

[:cupra]
 
hehe


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [VC++] Fonctions Callback help!!

 

Sujets relatifs
HTML help needed plizz[PHP] séparer un texte avec preg_split() help !
Turbo Pascal : helpProbleme avec DirectX et VC++5.0, help me !!
HTML, CGI (ISAPI) appel de 2 fonctions par une seule action[javascript] HELP
problème avec RMI en java: HELP![HELP] Commande sql
restreindre l'accés a un répertoire HELP!free et fonctions
Plus de sujets relatifs à : [VC++] Fonctions Callback help!!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR