Je suis donc inscrit avec succès une classe de fenêtre à l'aide RegisterClassEx
et créé une fenêtre à l'aide CreateWindowEx
:Quelles conditions doivent être remplies pour qu'un message de fenêtre soit affiché?
m_hInstance = ::GetModuleHandle(NULL);
...
m_hWnd = ::CreateWindowEx(0, "CMyClassName", "Message Window", 0, 0, 0, 0, 0, HWND_MESSAGE, 0, m_hInstance, 0);
La procédure de fenêtre associée reçoit des messages 36, 129, 131 et 1, et le retour HWND
est pas nul. Cependant, quand je l'appelle plus tard PostMessage
(un autre thread):
bool bPosted = ::PostMessage(m_hWnd, WM_APP + 3, 0, 0);
même si bPosted est vrai, la procédure de fenêtre est pas appelée. J'essaie de comprendre pourquoi cela devrait être. La procédure de la fenêtre est celle du MSDN example - j'avais l'intention d'ajouter un autre cas une fois que j'avais confirmé que les messages passaient.
Quelles conditions doivent être remplies pour qu'un message de fenêtre soit affiché?
J'ai mis à jour la question en réponse à certaines de vos préoccupations – Simon
Le WndProc est probablement important ici. Je suppose que le message se boucle aussi, si seulement pour être complet. –
J'ai ajouté un lien vers le code wndproc que j'ai utilisé. Ai-je besoin d'écrire une boucle de message? J'ai déjà reçu les quatre messages que j'ai décrits, donc j'ai supposé qu'il y avait une boucle de message en cours d'exécution. – Simon