Comment envoyer une notification gérée par ON_NOTIFY?

J’essaye de poster un LVN_ ITEMCHANGED au propriétaire de ma grid liste personnalisée. Je sais comment envoyer un message d’utilisateur WM_ à l’aide de PostMessage (comme indiqué ici)

::PostMessage( AfxGetMainWnd()->GetSafeHwnd(), WM_REFRESH, (WPARAM)pBuffer, (LPARAM)GetOutputIdx() ); 

Quand j’utilise ce même code pour envoyer un message LVN_ITEMCHANGED,

 ::PostMessage( AfxGetMainWnd()->GetSafeHwnd(), LVN_ITEMCHANGED, 0, 0); 

il ne semble pas être attrapé par le

 ON_NOTIFY(LVN_ITEMCHANGED, ..., ...) 

J’ai dans la classe de propriétaire.

Est-ce que je me trompe d’utiliser :: PostMessage pour envoyer un événement Notify?
Existe-t-il une différence entre les messages Notify et les messages de préfixe WM_ ou leur traitement?
Quelqu’un peut-il envoyer un échantillon de la manière dont j’enverrais correctement le message?

Merci d’avance.

modifier
J’ai trouvé une autre solution au problème. Voir ma réponse ci-dessous.

Envoyez WM_NOTIFY, transmettez l’ID de contrôle sous la forme wParam et NMHDR * sous la forme lParam.

Vous devrez affecter une variable NMHDR et la remplir correctement – définissez le code sur LVN_ITEMCHANGED et idFrom sur l’ID de contrôle. Vous pouvez uniquement utiliser SendMessage () et non PostMessage (), car le destinataire recevra directement la mémoire via le pointeur NMHDR *.

Smth comme ceci:

 NMHDR nmhdr; nmhdr.code = LVN_ITEMCHANGED; nmhdr.idFrom = controlId; nmhdr.hwndFrom = controlWindowHandle; SendMessage( targetWindowHandle, WM_NOTIFY, controlId, &nmhdr ); 

J’ai découvert que je pouvais remplacer le gestionnaire de messages dans ma classe dérivée et transmettre le message à mon contrôle parent simplement en utilisant ce code dans la mappe de messages:

 ON_NOTIFY_REFLECT_EX(LVN_ITEMCHANGED, OnListItemChanged) 

Ensuite, dans OnListItemChanged, j’appelle d’abord la fonction de la classe de base, puis renvoie FALSE. Cela fait que le message est reflété sans effort dans la classe parente.