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 :

Graphismes avec Visual C++


Sujet :

MFC

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Graphismes avec Visual C++
    Bonjour,
    Est-ce que quelqu'un a un exemple le plus simple possible, mais complètement complet, permettant de se retrouver en mode graphique et de tracer un segment à l'écran du point A(100,100) au point B(200,200) par exemple.
    (je cherche à faire des tracés tout simplement comme je pouvais le faire en TP6 ou en C++ tout simplement)
    Alors, on pouvais basculer en mode graphique puis dessiner dans un repère sans problème.
    merci, si quelqu'un peut m'aider...

  2. #2
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    sur une projet basé sur une boite de dialogue, tu créé un CStatic de type bitmap, et tu pourra dessiner dessus en récupérant son CDC:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CDC* dc = MonStatic.GetDC();
    dc->MoveTo(x1, y1); //premier point
    dc->LineTo(x2, y2); //deuxième point
    hope it helps
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  3. #3
    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

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    OK, merci bien à vous deux.
    Je vais essayer dès ce Week-end (avant j'ai de solides journées arghhh)
    Je vous tiens au courant si je m'en sors (j'espère) ou non...

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    [rOD] Tout d'abord l'analyse de ta réponse, car je ne vais pas très vite, vu que ça va faire 4 ans que je n'ai pas bossé les MFC avec VC++.
    (j'ai pas mal fais de VC++ au boulot, mais je ne faisait rien de graphique et cela avait le formatage routinier du travail)

    j'ai tapé ça après avoir choisi un projet MFC AppWizzard (EXE) dans la fonction onDraw de ma classe CTestfengraphView :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void CTestfengraphView::OnDraw(CDC* pDC)
    {
    	CTestfengraphDoc* pDoc = GetDocument();
    	ASSERT_VALID(pDoc);
    	// TODO: add draw code for native data here
     
    	pDC->MoveTo(100, 100); //premier point 
    	pDC->LineTo(150, 200); //deuxième point 
    }
    ça marche au poil, et je vois maintenant comment je vais pouvoir faire du graphisme.

    Une chose quand même, j'ai l'impression en lisant ton code que je suis passé à côté de quelque chose et que l'on n'est pas obligé de ce servir de AppWizzard pour faire générer tout ce code.
    (Tu avais juste défini un bitmap à la main peut-être ?)
    Est-ce que tu accepterais de m'envoyer un exple de projet avec le minimum de code possible pour faire une ligne avec MoveTo ?

    je vais regarder la 2ème réponse...

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    OK, farscape, et merci encore.
    Pour toi aussi, pour clore le sujet, j'ai pigé comment faire pour lancer du graphisme sur une fenêtre.
    Mais peux-tu m'indiquer comment faire au minimum (le plus court chemin) pour en arriver à écrire cette fonction CGraphique ?
    En gros est-il possible d'avoir un exple de projet vide créé par VC++, puis comment enlever tous le code parasite au dessin dans une fenêtre, puis les étapes pour arriver à ton exemple ?

  7. #7
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par altobar
    Est-ce que tu accepterais de m'envoyer un exple de projet avec le minimum de code possible pour faire une ligne avec MoveTo ?
    Bah, le mieux serait que de créer un projet toi-même:
    1/Dans visual->nouveau projet
    - Application MFC
    - Basé sur une boite de dialogue
    2/ Editeur de ressource, dans l'onglet "outils", tu choisi "Image"
    3/ propriétés de ton image:
    - type: bitmap
    4/ bouton de droite sur ton image -> ajouter une variable (on va l'appeler mcsImage pour l'exemple).
    5/ dimensions: c'est toi qui voit (soit à la souris dans l'éditeur de ressources, soit en utilisant la fonction mcsImage->MoveWindow)
    6/ tu créé une variable membre (que je nommerais mpImageDC pour l'exemple) de type CDC*: [CDC* mpImageDC;]
    7/ maintenant c'est le code que j'ai mis au début:
    dans ton OnInitDialog, tu récupère le dc de ton image:
    mpImageDC = mcsImage->GetDC();
    8/ Il ne te reste plus qu'à mettre tes fonctions de dessin dans le OnPaint() (cf msdn, recherche sur CDC)

    Hope it helps.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    C'est exactement ce que je souhaitais.
    je bloque encore (argh, j'espère que je gonfle pas trop...)
    peux tu me corriger mon projet ? (c'est chiant au début on a une intuition zero...)
    [je crois que je n'arrive pas à effectuer correctement le 4); j'ai Microsoft visual Studio avec Visual C++ 6.0]
    merci d'avance...

    mon projet :
    http://jpaul.rauzet.free.fr/VCPP/rod1.zip

  9. #9
    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
    salut ,
    vu que tu as l'air de debuter ,tu devrais regarder le tuto sur les mfc
    http://farscape.developpez.com/tutor...arrer-mfc-vc6/

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    OK, merci du conseil.
    Je vais y aller de ce pas car je débute vraiment sur les MFC.
    (En fait comme souvent au boulot on nous parle d'environnement C++ et fait beaucoup de C tout court, le reste étant de la prog par analogie.)
    Si quelqu'un peut quand même appliquer les conseils de roD sur le projet que j'ai tenté de compiler comme il me le disait...
    [en fait, je pense que je n'ai pas tout fait comme indiqué...]
    merci beaucoup.

  11. #11
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par altobar
    C'est exactement ce que je souhaitais.
    je bloque encore (argh, j'espère que je gonfle pas trop...)
    peux tu me corriger mon projet ? (c'est chiant au début on a une intuition zero...)
    [je crois que je n'arrive pas à effectuer correctement le 4); j'ai Microsoft visual Studio avec Visual C++ 6.0]
    merci d'avance...

    mon projet :
    http://jpaul.rauzet.free.fr/VCPP/rod1.zip
    AH, tu utilises visual6. Je crois que je ne pourrais pas t'aider plus, car je ne l'ai aps utilisé depuis longtemps, et je ne me souviens plus du tout.

    Mais en effet, le 4) que je t'ai donné est faux du coup. Essaie un truc du genre: ctrl+w dans l'éditeur de ressource (ça ouvre le class wizzard si je me souviens bien, et je crois qu'il faut que ton controle soit sélectionné quand tu fais ctrl+w). Une fois dans le class wizzard, il doit y avoir moyen de moyenner facilement.

    Sinon, le mieux est tout de même de faire un tuto

    Hope it helps.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Pareil pour les fautes d'orthographe !

    Bon, OK, merci, j'attendais ta réponse pour m'y remettre.
    Verdict :
    1) je vais bosser le tuto pour me remettre au VC++, et pour approfondir les MFC.
    2) je vais ré-essayer de "moyenner" s'il y a moyen
    3) je vais essayer d'utiliser Visual Studio .NET version Bêta qui est en téléchargement gratuit sur Microsoft (Est-ce que c'est une bonne chose ?)
    (c'est ça que tu utilises rOd ?
    4)On verra après le tuto, si on peut clôre le sujet...
    5)Encore merci à tous.

  13. #13
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    J'en suis à la page 27 de la doc sur les MFC. Je dois dire qu'elle est hyper ien faite. Je m'y plonge dès que j'en ai l'occasion en dehors du boulot.

  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

Discussions similaires

  1. graphisme avec visual
    Par zieg18 dans le forum MFC
    Réponses: 5
    Dernier message: 14/07/2006, 23h03
  2. Probleme d'utilisation de directX 9 avec visual studio.net
    Par cranedoeuf dans le forum DirectX
    Réponses: 1
    Dernier message: 24/05/2004, 04h33
  3. travail en parralèlle avec Visual C++ 6.0
    Par tut dans le forum MFC
    Réponses: 3
    Dernier message: 07/04/2004, 12h44
  4. Réponses: 12
    Dernier message: 02/02/2004, 13h41
  5. Comment attaquer Mysql avec Visual C++
    Par brisou_ dans le forum Administration
    Réponses: 4
    Dernier message: 11/03/2003, 13h12

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