[C++] Stocker des données dans un HWND

Stocker des données dans un HWND [C++] - Programmation

Marsh Posté le 05-12-2001 à 20:32:53    

Bonjour,
J'ai développé un FrameWork C++ utilisant les API de CarbonLib (librairie d'api de Mac, MacOSX) et j'aimerais l'adapter au mieux sous Windows pour porter mes applis sur PC.
Le problème est que je suis assez perdu même si les similitudes sont assez proches.
Voilà, j'aimerais stocké l'adresse de ma class (this) dans un HWND pour pouvoir la récupérer dans le CALLBACK de ma fenêtre.
Sous mac j'utilisais la fonction SetWRefCon( fWindow, (long)this ) et je la récupérais dans mon callback de cette manière
 
Boolean GetObjectFromWindow( WindowPtr window, BaseWindow** wind )
{
 SInt32  test;
 
    if (GetWindowKind( window ) != 2000 )
  return false;
   
 test = GetWRefCon( window );
 if ( test == nil ) return false;
 
 *wind = (BaseWindow*)test;
 
 return true;
}
 
Je voudrais faire de même sous Windows pour distribuer tout les events (messages) dans les différentes parties de ma class BaseWindow.
Je peux avoir consience que ce genre de méthode n'est pas la meilleur sur PC, si vous en avez une meilleur, je prends avec plaisir.
Voilà ;)
Merci pour votre aide.

 

[edtdd]--Message édité par iS@mi--[/edtdd]

Reply

Marsh Posté le 05-12-2001 à 20:32:53   

Reply

Marsh Posté le 05-12-2001 à 21:03:00    

Re,
Ben apparament j'ai trouvé quelque chose qui fonctionne   SetWindowLong(hWnd,GWL_USERDATA, (long) this) et ca marche impecablement.

Reply

Marsh Posté le 05-12-2001 à 21:20:41    

ya aussi SetProp qui est bien
l'avantage par rapport au dessus c ke tu peux stocker plusieurs variable

 

[edtdd]--Message édité par deathsharp--[/edtdd]


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 05-12-2001 à 22:13:18    

deathsharp a écrit a écrit :

ya aussi SetProp qui est bien
l'avantage par rapport au dessus c ke tu peux stocker plusieurs variable  
 
 




Oui, c'est ce que j'utiliserais.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 05-12-2001 à 23:07:54    

Sinon, est-il possible de créer des controls dans des fenêtres sans passer par l'utilisation de dialogue ?
Genre:
 
err = CreatePushButtonControl(theWin,&bounds, Title, &theControl);
SetControlID(theControl, &ClassID);
 
Ce que j'aimerais faire c'est ceci en fait :
 
1) Donner une id aux boutons
2) Dans les events de la fenêtre, ajouter une partie qui signal lorsqu'il y a un click sur un éventuel bouton.
3) Regarder quel bouton a été cliqué.
 
J'ai cherché des exemples, mais ils sont tous pour MFC et j'ai pas trop envie de m'embarasser d'un autre FrameWork.
J'ai également essayé de chercher dans le dossier où sont stocké tous les Header, mais je sais pas si c moi, mais je trouve ca complètement bordelique pour trouver des api's bien spécifiques ;-).
Merci pour vos réponces  :p

Reply

Marsh Posté le 06-12-2001 à 13:41:45    

ce que tu voudrais c'est creer par ex un bouton sans utiliser une boite de dialog? ben oui on peux.
CreateWindows avec la classe Button par ex et avec le style qui faut
c ca que tu veux?


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed