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

MFC Discussion :

[MFC]OnMouseMove


Sujet :

MFC

  1. #1
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Ao�t 2003
    Messages
    66
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 66
    Par d�faut [MFC]OnMouseMove
    Bonjour

    J'ai un projet en DirectX.
    Je d�sire controler une cam�ra avec la sourie.

    Je d�tecte donc le mouvement avec OnMouseMove()
    Une fois le traitement effectu� de la cam�ra, je remet la sourie
    au centre et c'est la que ca se g�te.


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    void CMainFrame::OnMouseMove(UINT nFlags, CPoint point)
    {
       if( m_bSourisActive )
       {
          CRect Fenetre;
          GetClientRect( &Fenetre );
          int Largeur = Fenetre.Size().cx,
              Hauteur = Fenetre.Size().cy;
     
     
          // ***
          // ... Traitement avec la caméra
          // ***
     
          // Centre la sourie
          POINT pt = { Largeur / 2, Hauteur / 2 };
          ClientToScreen(&pt);
          SetCursorPos(pt.x, pt.y); // Ouach!!!!!     
       }
       CFrameWnd::OnMouseMove(nFlags, point);
    }
    D�s que je bouge pour la premiere fois la sourie, il y a une boucle qui se fait et qui rentre toujours dans OnMouseMove(). Si j'enl�ve le SetCursorPos() alors tout est beau mais ca fait pas ce que je veux Wink

    Merci d'avance

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut ,
    le cas classique du prog qui se mord la queue oups de la souris ou DeadLock
    pourquoi tu ne remets pas a false ta variable juste avant le setcursorpos
    ca devrait resoudre ton pb de reentrance dans le message.

  3. #3
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Ao�t 2003
    Messages
    66
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 66
    Par d�faut
    D�soler, ca n'a pas l'air de marcher. Cette variable me sert � dire si je dois controler ou pas la cam�ra avec la souris. J'ai p-t mal compris ce que tu voulais me dire.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    J'ai esseyer ca :
     
          m_bSourisActive = false;
          SetCursorPos(pt.x, pt.y); 
          m_bSourisActive = true;

  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut alors tu a besoin d'une variable externe pour eviter la reentrance et surtout de savoir quand tu dois faire ton setcursorpos.

  5. #5
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Ao�t 2003
    Messages
    66
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 66
    Par d�faut
    Je m'�cris � moi-m�me.

    J'ai compris ce que tu voulais dire. Maitenant ca ressemnle � ca:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    void CMainFrame::OnMouseMove(UINT nFlags, CPoint point)
    {
       if( m_bSourisActive && !m_bSourisABouge  )
       {
          CRect Fenetre;
          GetClientRect( &Fenetre );
          int Largeur = Fenetre.Size().cx,
              Hauteur = Fenetre.Size().cy;
     
     
          // ***
          // ... Traitement avec la caméra
          // ***
     
          // Centre la sourie
          POINT pt = { Largeur / 2, Hauteur / 2 };
          ClientToScreen(&pt);
          SetCursorPos(pt.x, pt.y); // Ouach!!!!!     
     
       }
       else
       {
          CFrameWnd::OnMouseMove(nFlags, point);
          m_bSourisABouge = false;
       }
    }
    Merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    R�ponses: 8
    Dernier message: 08/06/2005, 15h57
  2. MDI sans MFC, possible ?
    Par delire8 dans le forum MFC
    R�ponses: 4
    Dernier message: 17/06/2002, 07h38
  3. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    R�ponses: 2
    Dernier message: 13/06/2002, 14h58
  4. R�ponses: 2
    Dernier message: 10/06/2002, 11h03
  5. [MFC] ADO connection
    Par philippe V dans le forum MFC
    R�ponses: 3
    Dernier message: 10/06/2002, 07h36

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