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 :

URGENT : Zoom et changement de repère


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 29
    Points : 20
    Points
    20
    Par défaut URGENT : Zoom et changement de repère
    Bonjour tout le monde !

    Jai un problème avec mon zoom.
    Jexplique : jai une carte du monde, je peux sélectionné le pays q je veux il change de couleur. Apres jai rajouté 1 zoom pour arriver à voir les zones ou les points étaient trop concentré. Donc il fo changer de repere no pb, et en plus ca zoome impécable mais je n'arrive plus à sélectionner les pays comme je veux. Comment faire pour que qd je clique sur la France ca ne me sélectionne pas le Canada???
    Si vous avez une idée aidez moi!!!

    Merci d'avance
    Mélanie

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 88
    Points : 72
    Points
    72
    Par défaut Hum...
    Ton probleme me sembe assez bizarre. Si tu pouvais decrire plus en detail comment tu t'y prends ca serait arrangeant....

    Pour le moment ce que je peux dire c que j'ai l'impression que lorsque tu zoome tu change l'affichage mais pas la ou ca clique ( peut etre que ca doit etre reduit de la meme maniere...) ou bien peut etre as tu simplement oublie de convertir la position de la souris sur l'ecran en coordonnees relatives a la fenetre (la fonction ScreenToClient(&laPosition) )

    Voila !!
    Encore une fois, donne plus de details et l'aide sera plus consistante...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Je peux pas t'expliquer plus, prcq déjà je suis pas très douée pour ca. Mais je pense que tu as compris le principe : qd je clique pour faire mon zoom ca change bien l'affichage mais pas là ou je sélectionne mon pays. Je vais utiliser ta méthode ScreenToClient mais ca me parait bizard prcq je crois déjà avoir converti les coordonnées périphériq en coordonnées logiques. Bon je vais essyer.

    Merci @+
    Mélanie

  4. #4
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 84
    Points : 89
    Points
    89
    Par défaut
    faut juste que quand tu zoome, tu recupere les coordonnees de du coin superieur gauche de ta fenetre par rapport a ta carte, puis quand tu clique, tu additionne les coordonees du clic a celle de la fenetre

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Malheuresement ca marche toujours pas , c'a été fait dans OnRButtonUp et ca ne change rien.
    Voilà un bout du code qu'il ya dans OnRButtonUp
    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
    28
    29
    30
    31
     
    ...
    if (m_pointTopLeft != m_pointBottomRight)
    {
    //on convertit les coordonnées fenêtre en coordonnées points
    GetClientRect(rectfenetre);
    hautfenetre=(long) (fabs(-rectfenetre.bottom+rectfenetre.top));
    largfenetre=(long) (fabs(-rectfenetre.right+rectfenetre.left));
     
    xmin=(long)(m_minx+((double)(rect.left)/(double)(largfenetre))*(double)m_extx);
    xmax=(long)(m_minx+((double)(rect.right)/(double)(largfenetre))*(double)m_extx);
     
    ymax = hautfenetre - rect.top;
    ymax= (long)(( (double) ymax / (double) hautfenetre)*m_exty);
    ymax= (long)(m_miny + ymax);
    ymin =(long) hautfenetre - rect.bottom;
    ymin=(long) (( (double) ymin / (double) hautfenetre)*m_exty);
    ymin=(long) (m_miny + ymin);
     
    m_minx=xmin;
    m_maxx=xmax;
    m_miny=ymin;
    m_maxy=ymax;
     
    //nouvelles valeurs de m_extx et m_exty
    m_extx =(long) (fabs((double) ((m_maxx - m_minx))));
    m_exty =(long) (fabs((double)(m_maxy-m_miny)));
    Invalidate();
    UpdateWindow();
    }
    ...
    Jai peut-etre des pb dans les consertions de coordonnées.


    Help me!!!!
    Mélanie

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Effectivement javais bien un probleme dans la conversion de mes coordonnées mais dans la méthode OnLButtonDblClk().
    Ca marche mtnt!

    @+
    Mélanie

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/08/2012, 13h01
  2. [MATH] Matrice de changement de repère.
    Par Mr Meuble dans le forum Moteurs 3D
    Réponses: 6
    Dernier message: 27/11/2008, 11h05
  3. Changement de repère
    Par Virgile le chat dans le forum 2D
    Réponses: 4
    Dernier message: 16/06/2007, 10h26
  4. Changement de repère
    Par Bloodista dans le forum OpenGL
    Réponses: 3
    Dernier message: 23/04/2007, 23h23

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