Bonjour à tous,
Je code actuellement un programme en C++ sous Visual et je ne trouve pas comment bloquer l'utilisation de la molette souris à l'utilisateur.
Bonjour à tous,
Je code actuellement un programme en C++ sous Visual et je ne trouve pas comment bloquer l'utilisation de la molette souris à l'utilisateur.
Il faut que tu récupères le message WM_MOUSEWHEEL.
Pour ce il suffira de rajouter dans ton MESSAGE_MAP:
Puis par exemple la fonction suivante :ON_WM_MOUSEWHEEL()
Bon courage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 BOOL CPersoDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { //faire quelque chose ou ne rien faire // ... return TRUE; }![]()
En fait ça j'ai essayé mais ça ne désactive pas la molette.
J'ai besoin de désactiver l'utilisation de la molette dans une fenetre car j'ai un controle (CListCtrl) qui gère cette molette et ça ne me plait pas j'aimerais ne pas permettre au CListCtrl de sroller quand je fais la molette.
Donc comme je pense qu'il est impossible d'accéder au OnMouseWheel de la CListCtrl (protégé il me semble) ben je pense supprimer l'utilisation de la molette dans mon appli. Il n'y a pas une option dans le projet ou une ligne de code à rajouter pour ça?
A chaque fois le probleme est simple mais la solution compliqué à trouvé, pas simple la prog !!!!![]()
Surcharge la CListCtrl par un CListPersoCtrl qui implémente ce que je t'ai écrit précédemment.Donc comme je pense qu'il est impossible d'accéder au OnMouseWheel de la CListCtrl (protégé il me semble) ben je pense supprimer l'utilisation de la molette dans mon appli
Et voilà une des solutions qui m'a été donnée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 BOOL CFenetreDlg::PreTranslateMessage(MSG* pMsg) { // intercept key events if ( (pMsg->message == WM_MOUSEHWHEEL) || (pMsg->message == WM_VSCROLL) || (pMsg->message == WM_MOUSEWHEEL) ) { return TRUE; } return CDialogEx::PreTranslateMessage(pMsg); }
Tu as 2 fois pMsg->message == WM_MOUSEHWHEEL dans ton test.
D'autre part en testant au niveau de ta fenêtre parent (ce que tu fais), il n'y a aucune garantie que les messages soient interceptés si ta CListCtrl a le focus.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager