2009-12-09 21 views

Répondre

2

Tout ce que fait MFC est d'enregistrer le dernier message qu'il a reçu dans une classe. Je suis sûr que vous pourriez ajouter quelque chose comme ceci à vos pompes de message de fil ...

Editer: Aussi son intérêt à regarder __declspec (thread) pour définir un "global" dans le stockage local de thread. C'est ce que fait MFC ...

Editer: Vous aurez une pompe à message. Si vous déclarez d'abord une variable similaire à ce qui suit:

__declspec(thread) MSG g_LastMsg = 0; 

Et vous devez changer votre pompe de messages dans chaque thread à quelque chose comme ceci:

MSG msg; 
while(GetMessage(&msg, NULL, 0, 0)) 
{ 
      g_LastMsg = msg; 
    TranslateMessage(&msg); 
    DispatchMessage(&msg); 
} 

Maintenant, chaque fois que vous voulez voir ce que le dernier message "pompé" était juste vérifier la variable g_LastMsg ...

Vous pouvez également construire la structure du message à l'intérieur de vos procédures de fenêtre si vous préférez. Entièrement à vous ...

+0

Eh bien, en fait, je ne suis pas si pro sur MFC alors où dois-je enregistrer le dernier message? – whoi

+0

@qui vous n'avez pas besoin d'être un pro MFC pour ** pas ** utiliser MFC. Enregistrez-le où vous voulez! – Ben

+0

@Ben: Si vous jetez un oeil à quand il a posté et quand j'ai édité peut-être la question a plus de sens. – Goz