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 GUI] CDC::Polyline


Sujet :

MFC

  1. #1
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut [MFC GUI] CDC::Polyline
    Helloà tous,

    j'ai un vecteur de pointeurs de point et j'aimerais passer ces points à CDC:olyLine. Pouvez vous m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    vector<CPoint*> l_vResultPoints;//declaration du vecteur
     
    m_pExpPicture->GetPOR(l_vResultPoints);//reception du vecteur par ref
     
    pDC->Polyline(*l_vResultPoints.begin(),l_vResultPoints.size());//essai de passage du vecteur à Polyline
    ce code recoit des mauvaises valeur du vecteur...mais pas d'erreur d'execution.

    merci

  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
    ce code ne peut fonctionner d'apres moi .
    begin revoie un const_iterator ..
    polyline s'attend a un tableau contigue en memoire de CPoint *
    au bout du compte je ne pense pas que l'on puisse utiliser un vector avec ce type de fonction.
    par contre avec un CArray je pense que ça devrait fonctionner.
    a adapter fait un essai rapide avant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CArray <CPoint*,CPoint*> l_vResultPoints;//declaration du vecteur
     
    m_pExpPicture->GetPOR(l_vResultPoints);//reception du vecteur par ref
     
    pDC->Polyline(l_vResultPoints.GetData(),l_vResultPoints.GetSize());//essai de passage du vecteur à Polyline
    la difference c'est que le CArray donne la possibilité d'acceder a la zone memoire interne allouée.


  3. #3
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    suivant tes conseil j'utilise un CArray mais j'ai un problème pour le passer par ref:

    comment faire STP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CArray<CPoint*,CPoint*> m_POR;
     
    void GetPOR(CArray<CPoint*,CPoint*> & _POR)
    {
    	_POR = m_POR;
       //error C2582: 'operator =' fonction non disponible dans 'CArray<TYPE,ARG_TYPE>'
    with  [TYPE=CPoint *,ARG_TYPE=CPoint *]
     
    	return;
    }

    PS j'ai aussi essayé avec un CArray de CPoint et pas de ptr de CPoint mais meme problème.
    PS 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _POR = m_POR.GetData();//ca marche pas

  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
    Citation Envoyé par ZaaN
    suivant tes conseil j'utilise un CArray mais j'ai un problème pour le passer par ref:

    comment faire STP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CArray<CPoint*,CPoint*> m_POR;
     
    void GetPOR(CArray<CPoint*,CPoint*> & _POR)
    {
    	_POR = m_POR;
       //error C2582: 'operator =' fonction non disponible dans 'CArray<TYPE,ARG_TYPE>'
    with  [TYPE=CPoint *,ARG_TYPE=CPoint *]
     
    	return;
    }

    PS j'ai aussi essayé avec un CArray de CPoint et pas de ptr de CPoint mais meme problème.
    PS 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _POR = m_POR.GetData();//ca marche pas
    je ne comprends pas pourquoi tu fais ça !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void GetPOR(CArray<CPoint*,CPoint*> & _POR)
    {
    	return;
    }
    dans la fonction tu utilises directement _POR vu que c'est une réference sur l'objet ,pas besoin d'affectation .

  5. #5
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    je ne comprends pas pourquoi tu fais ça !
    en réalité c'est un membre d'une autre classe ce tableau et je veux le passer par ref (afin d'etre lu par des autres object) au travers de GetPOR

  6. #6
    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
    ça serait plutot un truc comme ça ,si j'ai bien compris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CArray<CPoint*,CPoint*> *m_pPOR;
     
    void GetPOR(CArray<CPoint*,CPoint*> & _POR)
    {
            m_pPOR=& _POR; 
    }

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

Discussions similaires

  1. [MFC]Du CDC à la CBitmap
    Par BlueRiver dans le forum MFC
    Réponses: 4
    Dernier message: 10/08/2006, 15h08
  2. Probleme avec CDC en MFC
    Par jiraya43 dans le forum MFC
    Réponses: 4
    Dernier message: 25/04/2006, 10h03
  3. Réponses: 1
    Dernier message: 13/11/2005, 15h30
  4. [MFC] CDC: Problème d'affichage
    Par r0d dans le forum MFC
    Réponses: 2
    Dernier message: 19/08/2005, 18h31
  5. [MFC] CDC::Rectangle(CRect rect)
    Par r0d dans le forum MFC
    Réponses: 2
    Dernier message: 07/08/2005, 15h01

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