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]dessiner un rectangle dans ma fenetre


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 26
    Points
    26
    Par défaut [MFC]dessiner un rectangle dans ma fenetre
    salut,je fais une application avec visualC++ 6.0 et je voudrais dessine un rectangle grace a CRect, mais celui cu ne s'affiche pas.
    est ce que vous saurier comment faire?
    merci

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu as dessiné ou ? tu as raffraichi ? (avec invalidateRect)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 26
    Points
    26
    Par défaut
    en fait, quand je fait un click gauche je cree un rectangle avec le point cliqué . quand je deplace ma souris, je crée un rectangle qui a pour parametre le point clické precedement et le point ou se trouve ma souris et enfin quand je releve le bouton gauche je dessine le rectangle qui a pour parametre le point lorsque j'ai appuyer sur le bouton gauche et le point lorsque je relache le bouton gauche.
    je rafraichi bien , mais sa s'affiche pas quand meme

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    comment traces-tu les lignes ? montre ton code

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 26
    Points
    26
    Par défaut
    mon code est le suivant:

    dans le construteur de la classe view:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pen.CreatePen(PS_SOLID,5,RGB(255,0,0 ));
    dans la fonction OnLButtonDown:
    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
     
     m_select=true;
      SetCapture();
      //On recupere le premier point du rectangle de selection
      m_premP = point;
     
      //On cree le rectangle de selection
      CRect rect(point, point);
     
      //on recupere le contexte de peripherique
      CDC *pDC = GetDC();
      DC->SelectObject(&pen);
     m_rect = rect;
      ReleaseDC(pDC);
      InvalidateRect(m_rect,true);
    dans la fonction OnMouseMove:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if(m_select)
     {
      CRect rect(m_premP, point);
            rect.NormalizeRect();
            CDC *pDC = GetDC();
      DC->SelectObject(&pen);
            m_rect = rect;
            ReleaseDC(pDC);
      InvalidateRect(m_rect,true);
    }
    dans la fonction OnLButtonUp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     CDC *pDC = GetDC();
      DC->SelectObject(&pen);
      CRect rect(0,0,0,0);
     
      ReleaseDC(pDC);
      ReleaseCapture();
      m_select=false;
      InvalidateRect(rect,true);
      CScrollView::OnLButtonUp(nFlags, point);

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    euh ... je vois pas trop de quoi dessiner là ... manque des drawline ou des moveto ou des choses comme ca ...

  7. #7
    Membre régulier

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2002
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 216
    Points : 120
    Points
    120
    Par défaut
    une fois que ta récuperé tes coordonnées utilise CDC::Rectangle(int x1,int y1,int x2,int y2)...

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 26
    Points
    26
    Par défaut
    ben je vais essayer avec des drawline alors.
    merci pour ton aide

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 26
    Points
    26
    Par défaut
    merci pour ton aide lucky, mais il faudrai que cela me dessine seulement les bord du rectangle et la j'ai un rectangle tout blanc

  10. #10
    Membre régulier

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2002
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 216
    Points : 120
    Points
    120
    Par défaut
    utilise peut être CDC::FillSolidRect(...

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 26
    Points
    26
    Par défaut
    merci pour ton aide

  12. #12
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 177
    Points : 115
    Points
    115
    Par défaut
    J'ai vu dans les lignes de codes "GetDC()" et j'aimerais savoir ce qu'est le DC récupéré par GetDC?

    (ouais je vais passer pour un , mais bon c'est pas faux lol)

  13. #13
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu as le droit de regarder dans msdn ou dans un tutoriel http://chgi.developpez.com/windows/hdc/

  14. #14
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    pour ecrire dans un fichier tu as besoin d'un handle sur le fichier
    pour dessiner graphiquement dans une fenetre tu as besoin d'un Device Context sur la fenetre en question.
    tous les controles windows finissent par dessiner dans leur fenetre et utilisent donc un DC..
    GetDC va de paire avec ReleaseDC..

Discussions similaires

  1. POO dessiner un objet dans une fenetre
    Par gabrielS dans le forum Langage
    Réponses: 2
    Dernier message: 07/06/2013, 00h56
  2. Réponses: 0
    Dernier message: 24/12/2012, 22h32
  3. Réponses: 0
    Dernier message: 21/12/2012, 23h50
  4. Dessiner un rectangle dans la console
    Par Akastras dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2010, 16h55
  5. Le dessin avec VC dans une fenetre windows
    Par ccensam dans le forum MFC
    Réponses: 3
    Dernier message: 04/11/2005, 00h40

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