bonjour, mon application affiche des images (dans une CScrollView) et j'aimerai afficher en temps réel les coordonnées du pointeur dans l'image, j'intercepte donc l'évenement OnMouseMove qui me fournit les coordonnées du pointeur DANS LA VUE. Elles correspondent donc au coordonnées de l'image TANT QUE l'on ne défile pas dans la vue.Pour garder les bonnes coordonnées lors d'un défilement à l'aide de la scroolbar je dois calculer la correction à apporter, il faut donc que je récupère la position de la scrollbar (verticale dans mon cas).
J'ai intercepté l'évenement OnVSCroll dans ma CMonAppView, elle est construite comme ceci :
sur msdn j'ai vu que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void CDibView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { CScrollView::OnVScroll(nSBCode, nPos, pScrollBar); }nPos renvoi donc la position que si nSBCode est à SB_THUMBPOSITION ou SB_THUMBTRACK, or en faisant des tests je m'aperçois que ça n'est jamais le cas, quand je fais défiler ma vue nSBCode est soit à SB_LINEUP soit à SB_LINEDOWN.nPos :
Contains the current scroll-box position if the scroll-bar code is SB_THUMBPOSITION or SB_THUMBTRACK; otherwise not used. Depending on the initial scroll range, nPos may be negative and should be cast to an int if necessary.
J'ai également essayé de récupérer la position en faisant pScrollBar->GetScrollPos() mais là le programme plante.
A noter que ma scrollbar est créée automatiquement puisque ma vue dérive d'une CScrollView.
Une idée sur la manière de procéder?
merci
Partager