Etrange contrôle que ce CScrollBar n'est-il pas?
Tout d'abord, il ne comporte qu'un seul événement de contrôle... alors que les autres en ont beaucoup plus (un simple bouton en comporte 6).
Ensuite, son comportement est ... comment dire ... mystérieux. Le seul événement de contrôle s'appelle NM_CHANGETHEME, qui va être récupéré par la méthode OnNMThemeChangedScrollbar(). Il n'y a aucun signe de cet événement dans la msdn.
Enfin, quand je crée la méthode (citée ci-dessus) automatiquement en double-cliquant sur mon contrôle, j'obtiens:
déclarée automatiquement dans DoDataExchange() par:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void CTestGrid1Dlg::OnNMThemeChangedScrollbar1(NMHDR *pNMHDR, LRESULT *pResult) { }
et par
Code : Sélectionner tout - Visualiser dans une fenêtre à part DDX_Control(pDX, IDC_SCROLLBAR1, m_vMainScrollBall);
dans BEGIN_MESSAGE_MAP
Code : Sélectionner tout - Visualiser dans une fenêtre à part ON_NOTIFY(NM_THEMECHANGED, IDC_SCROLLBAR1, OnNMThemeChangedScrollbar1)
maintenant, je compile pour jeter un coup d'oeil sur les arguments qui me sont envoyés à l'appel de cette méthode, et, Ô surprise, je me fais jeter par:
error C2065: 'NM_THEMECHANGED'*: identificateur non déclaré
J'ai pourtant vérifié, ce satané 'NM_THEMECHANGED' est pourtant bien déclaré dans le fichier commctrl.h.
Bonbonbon, ok d'accord, alors j'ajoute
je compile... et là!!! La même erreur!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include "commctrl.h"
Je me suis mis à la MFC depuis peu, et je commence à me demander si je vais pas laisser tomber la msdn pour me payer un exorciste
Plus sérieusement, si quelqu'un connait un peu le contrôle CScrollBar, je veux bien un peu d'aide parce que je ne trouve rien sur la toile là-dessus.
Merci.
Partager