Dans une petite appli en C sous W2K, j'utilise un menu contextuel créé à
l'aide d'un fichier ressource, et je voudrais intercepter les messages
qu'il reçoit. Le but est de personnaliser son affichage sur WM_PAINT.
J'étais parti pour le sous-classer avec SetWindowLong, mais si j'ai bien
le HMENU (retourné par LoadMenu), je n'arrive pas à obtenir le HWND de
sa fenêtre propre. Il doit bien traîner quelque part...
Quelqu'un a t-il une idée ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christian ASTOR
news.free.fr wrote:
Dans une petite appli en C sous W2K, j'utilise un menu contextuel créé à l'aide d'un fichier ressource, et je voudrais intercepter les messages qu'il reçoit. Le but est de personnaliser son affichage sur WM_PAINT. J'étais parti pour le sous-classer avec SetWindowLong, mais si j'ai bien le HMENU (retourné par LoadMenu), je n'arrive pas à obtenir le HWND de sa fenêtre propre. Il doit bien traîner quelque part...
On peut le faire ds WM_INITMENUPOPUP avec FindWindow() & "#32768", mais ça ne se fait généralement pas et on utilise plutôt MFT_OWNERDRAW
news.free.fr wrote:
Dans une petite appli en C sous W2K, j'utilise un menu contextuel créé à
l'aide d'un fichier ressource, et je voudrais intercepter les messages
qu'il reçoit. Le but est de personnaliser son affichage sur WM_PAINT.
J'étais parti pour le sous-classer avec SetWindowLong, mais si j'ai bien
le HMENU (retourné par LoadMenu), je n'arrive pas à obtenir le HWND de
sa fenêtre propre. Il doit bien traîner quelque part...
On peut le faire ds WM_INITMENUPOPUP avec FindWindow() & "#32768", mais
ça ne se fait généralement pas et on utilise plutôt MFT_OWNERDRAW
Dans une petite appli en C sous W2K, j'utilise un menu contextuel créé à l'aide d'un fichier ressource, et je voudrais intercepter les messages qu'il reçoit. Le but est de personnaliser son affichage sur WM_PAINT. J'étais parti pour le sous-classer avec SetWindowLong, mais si j'ai bien le HMENU (retourné par LoadMenu), je n'arrive pas à obtenir le HWND de sa fenêtre propre. Il doit bien traîner quelque part...
On peut le faire ds WM_INITMENUPOPUP avec FindWindow() & "#32768", mais ça ne se fait généralement pas et on utilise plutôt MFT_OWNERDRAW
lgloub
Christian ASTOR wrote:
On peut le faire ds WM_INITMENUPOPUP avec FindWindow() & "#32768", mais ça ne se fait généralement pas et on utilise plutôt MFT_OWNERDRAW
Ok, ça fonctionne, merci. Pas besoin de sous-classer du coup... J'ai d'ailleurs essayé, maintenant que je peux, pour le fun, et ça marche pas mal...
Christian ASTOR wrote:
On peut le faire ds WM_INITMENUPOPUP avec FindWindow() & "#32768", mais
ça ne se fait généralement pas et on utilise plutôt MFT_OWNERDRAW
Ok, ça fonctionne, merci.
Pas besoin de sous-classer du coup...
J'ai d'ailleurs essayé, maintenant que je peux, pour le fun, et ça
marche pas mal...