IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Désactiver molette application


Sujet :

Visual C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Points : 56
    Points
    56
    Par défaut Désactiver molette application
    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.

  2. #2
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Il faut que tu récupères le message WM_MOUSEWHEEL.

    Pour ce il suffira de rajouter dans ton MESSAGE_MAP:
    ON_WM_MOUSEWHEEL()
    Puis par exemple la fonction suivante :
    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;
    }
    Bon courage

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    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 !!!!

  4. #4
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    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
    Surcharge la CListCtrl par un CListPersoCtrl qui implémente ce que je t'ai écrit précédemment.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    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);
    }

  6. #6
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Désactiver molette souris Access 2003
    Par Thierry'' dans le forum Access
    Réponses: 7
    Dernier message: 21/11/2012, 17h53
  2. Désactiver molette de la souris : besoin d'aide sur le code
    Par fanico11 dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/05/2008, 17h53
  3. [acces 2003] Désactivé molette de la souris
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 9
    Dernier message: 25/01/2008, 09h50
  4. Désactivation molette souris
    Par gregrywan dans le forum Access
    Réponses: 5
    Dernier message: 27/01/2006, 12h41
  5. erreur code pour désactiver molette souris.
    Par rangernoir dans le forum Access
    Réponses: 2
    Dernier message: 27/09/2005, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo