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

C++ Discussion :

[MFC]: SetCursor sur un CStatic


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 157
    Par défaut [MFC]: SetCursor sur un CStatic
    Bonjour,

    Voila, j'ai cree une interface MFC de type CFormView. A l'interieur, j'utilise un CStatic en tant que controle devant afficher une image (bitmap). J'aimerais que lorsque je passe sur le CStatic, mon curseur change de forme.

    J'ai deja essaye de mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UINT AS4_DisplayFrame::OnNcHitTest(CPoint point) 
    {
    	::SetCursor(AfxGetApp()->LoadStandardCursor("IDC_CROSS"));
     
    	return CStatic::OnNcHitTest(point);
    }
    Mais apparemment sans succes. Ca ne fait rien du tout. Par contre si j'utilise 'ShowCursor(false)', la, ca cache effectivement le curseur...

    Quelqu'un saurait-il m'aider?

    Merci d'avance. GTreize

  2. #2
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    salut,

    fais plutot ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    BEGIN_MESSAGE_MAP(...)
      ON_WM_SETCURSOR()
    END_MESSAGE_MAP()
     
    BOOL AS4_DisplayFrame::OnSetCursor(CWnd* pWnd,UINT nHitTest,UINT message)
    {
      ::SetCursor(AfxGetApp()->LoadStandardCursor(_T("IDC_CROSS")));
      return TRUE;
    }
    et il faut mettre le style SS_NOTIFY au controle, sinon ça ne marche pas.
    soit via l'éditeur de ressource, soit via un ModifyStyle()

    @+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 157
    Par défaut
    Salut et merci,

    ...mais ca marche po

    Voici une image pour illustrer, passque je sus pas sur que ce que je demande soit possible:


  4. #4
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    montres-nous le code qui créé ton controle "static"
    le morceau de code que je t'ai donné fonctionne très bien; c'est qu'il y a un autre problème ailleurs ...

    @+

  5. #5
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    IDC_CROSS est le nom de ta ressource ou un id ? (dans Resource.h, il y a un #define IDC_CROSS ... ??)
    le problème vient peut etre de là ...

    @+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 157
    Par défaut
    Ca y est j'ai resolu le probleme... j'avais oublie le

    Et le IDC_CROSS est un curseur "standard". Il faut ecrire,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    BOOL AS4_DisplayFrame::OnSetCursor(CWnd* pWnd,UINT nHitTest,UINT message)
    {
      ::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_CROSS));
      return TRUE;
    }
    ... et ne pas oublier effectivement de mettre la propriete "notify".

    Merci a vous!!

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

Discussions similaires

  1. [MFC] Plantage sur LoadFrame
    Par thieum74 dans le forum MFC
    Réponses: 11
    Dernier message: 06/09/2007, 13h15
  2. Réponses: 15
    Dernier message: 18/01/2005, 23h18
  3. Réponses: 9
    Dernier message: 23/02/2004, 19h14
  4. [MFC] Boucle sur un bouton
    Par karl3i dans le forum MFC
    Réponses: 6
    Dernier message: 17/02/2004, 11h37
  5. [MFC]Info sur da la fusion sous Word
    Par kor dans le forum MFC
    Réponses: 6
    Dernier message: 22/08/2003, 11h14

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