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 :

afficher une carte


Sujet :

MFC

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 252
    Par défaut afficher une carte
    Bonjour
    j'essaie d'avoir une carte qui est modifiable depuis ma Dialog principale

    il faut que cette zone est sa taille extensible et qu'il est possible de modifier le dessin
    j'ai pour l'instant un FormView sur lequel j'ai un Picture Contrl et un slider pour l'echelle
    comment peindre sur cette fenetre
    (comment avoir une grille de fond qui change selon l'echelle)



    merci pour l'aide

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 252
    Par défaut
    J'ai ces erreurs de compilation

    Error 42 error C2065: 'CMap_' : undeclared identifier lemonitordlg.cpp 1179
    Error 43 error C2146: syntax error : missing ';' before identifier 'm' lemonitordlg.cpp 1179
    Error 44 error C3861: 'm': identifier not found lemonitordlg.cpp 1179
    provoquée par ligne 1179:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void CLEMonitorDlg::OnFileShowMap() 
    {
    	CMap_ m(10);
    }
    pourquoi?
    Fichiers attachés Fichiers attachés
    • Type de fichier : cpp Map_.cpp (702 octets, 80 affichages)
    • Type de fichier : h Map_.h (432 octets, 73 affichages)

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Parce que le type/classe CMap_ n'est pas connu à cet endroit ?

    Il manque peut être un include "Map_.h" quelque part dans ton fichier lemonitordlg.cpp
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 252
    Par défaut
    oui c'était bien ça

    j'aurais besoin d'interagir entre ce Dialog (Map) et mon Dialog principal, pour que Map redessine en temp réel

    en ce moment, je lance ma Map avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void CLEMonitorDlg::OnFileShowMap() 
    {
    	C2DMap m(m_ref,m_refCnt,m_blind,m_blindCnt);
    	int result = m.DoModal();
    	if (result == IDOK) 
    	{
    		//
    	}
    }
    depuis le Dialog principal

    il faudrait que la Map ne bloque pas le dialogue principal
    il me faudrait un rafraichissement du principal vers la Map, peut etre qu'il faut lancer un evenement à chaque changement dans le pricinipal et gerer cet evenement dans le Map pour que ça retrace avec les nouveaux parametres
    comment faire ça en MFC svp?

    merci
    Fichiers attachés Fichiers attachés

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 252
    Par défaut
    Bonjour

    pour notifier un Dialogue à partir du dialog principal, d'un changement
    est ce que le mieux c'est d'emettre un evenement comme ça:
    PostMessage(m_hDlgWnd, UWM_NEW_MESSAGE, 0, 0);
    (UWM_NEW_MESSAGE = WM_APP(0x8000) +1)
    et de le traiter dans le dialogue?

    est ce qu'il y a pas une méthode plus propre qui evite d'ajouter un nouvel evenement systeme


    j'ai essayé comme ça avec cet evenement
    du coté de la map j'ai
    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
    BEGIN_MESSAGE_MAP(C2DMap, CDialog)
    	//{{AFX_MSG_MAP(C2DMap)
    		ON_WM_PAINT()
    		ON_WM_HSCROLL()
    		ON_MESSAGE (UWM_NEW_MESSAGE, OnMsg)
    	//}}AFX_MSG_MAP
    END_MESSAGE_MAP() 
     
    .....
     
     
    void C2DMap::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
    {
    	if (pScrollBar->GetDlgCtrlID()==IDC_SLIDER){
    		m_scal=m_slider->GetPos();
    	}
    	// Redraw
    	Invalidate(TRUE);
     
    	CDialog::OnHScroll(nSBCode, nPos,pScrollBar);
    }
     
    LRESULT C2DMap::OnMsg(WPARAM w, LPARAM l)
    {
    	Invalidate(TRUE);
    	return 0;
    }
    on voit comment c'est organisé sur image jointe
    en fait c'est bizarre,
    quand je clique sur le slider , le dessin s'actualise avec les données du Dialog principale qui ont changées ou non (les x et y des elements)

    mais normalement chaque fois, avec OnMsg() il devrait rafraichier tout seul parceque un message est emis a chaque changement

    pour l'instant je dois rester appuyer sur le slider pour que ça soit rafraichi
    Images attachées Images attachées  

Discussions similaires

  1. [Google Maps] Afficher une carte à partir d'un code postal
    Par gohanfaye dans le forum APIs Google
    Réponses: 5
    Dernier message: 21/06/2011, 20h13
  2. Réponses: 1
    Dernier message: 07/02/2011, 22h54
  3. afficher une carte (.ecw)
    Par fiitz dans le forum wxWidgets
    Réponses: 2
    Dernier message: 29/04/2008, 11h13
  4. Afficher une carte
    Par gaby_1 dans le forum Débuter
    Réponses: 2
    Dernier message: 23/09/2007, 14h27
  5. [Lazarus] Afficher une carte 2D isométrique
    Par Neuromancien2 dans le forum Lazarus
    Réponses: 2
    Dernier message: 05/09/2007, 20h21

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