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 :

Le dessin avec VC dans une fenetre windows


Sujet :

MFC

  1. #1
    Membre �prouv� Avatar de ccensam
    Inscrit en
    Juillet 2005
    Messages
    128
    D�tails du profil
    Informations personnelles :
    �ge : 39

    Informations forums :
    Inscription : Juillet 2005
    Messages : 128
    Par d�faut Le dessin avec VC dans une fenetre windows
    Salut tous les d�veloppeurs,
    Pendant notre cursus d'�tude on a fait plusieurs algorithme de graphisme simple tel que BRESENHAM,...
    je veux transformer ces algoritheme en vrai utilitaire.
    l'algorithme de bresenham consiste � donnez les cordonn�es sucssives des points permettant le dessin d'une droite ou un cercle. Le probl�me que je ne sais pas les fonctions, les librairies et la syntaxe qui permettent le ploting des points en C/C++ avec le compilateur VCC.
    Veuillez m'aider svp.

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Est-ce que tu sais au moins progammer en mode fen�tre ou boite de dialogue? Sinon, tu ne comprendras pas ce qui suit...

    En API Win32, pour dessiner, on traite le message WM_PAINT, qui indique quand la fen�tre doit �tre dessin�e.
    Un petit exemple, qui affiche les diagonales de la fen�tre (Les coins peuvent �tre un peu approximatifs) :
    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
    case WM_PAINT:
    	//Variables locales pour Dessin
    	{
    	PAINTSTRUCT ps;	//Utilisé principalement par BeginPaint() et EndPaint()
    	HDC hdc;	//Toutes les opérations de dessin utilisent le HDC
    	RECT r;	//Rectangle interne de la fenêtre: top=0 left=0
     
    	//Récupère le HDC
    	hdc=BeginPaint(hWnd,&ps);
     
    	//Récupère le rectangle interne pour avoir la taille de la fenêtre
    	GetClientRect(hWnd,&r);
     
    	//Trace les diagonales
    	//(attention, LineTo n'affiche pas le dernier point. 
    	//Ici, ce sont les points tout en bas des diagonales 
    	//qui ne seront pas tracés)
    	MoveToEx(hdc,r.right-1,r.top,NULL);
    	LineTo(hdc,r.left,r.bottom-1);
     
    	MoveToEx(hdc,r.left,r.top,NULL);
    	LineTo(hdc,r.right-1,r.bottom-1);
     
    	EndPaint(hWnd,&ps);
    	}
    	break;
    Pour MFC, on red�finit la fonction membre OnPaint(), et au lieu du HDC, on utilise un CPaintDC (normalement, l'assistant de Visual donne le bon squelette pour la fonction)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre �prouv� Avatar de ccensam
    Inscrit en
    Juillet 2005
    Messages
    128
    D�tails du profil
    Informations personnelles :
    �ge : 39

    Informations forums :
    Inscription : Juillet 2005
    Messages : 128
    Par d�faut L'algorithme de presenham pour une ligne
    Voila le codes de l'algorithme de BRESENHAM pour une ligne :

    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
     
     
    void bresLINE(point &a,point &b)
    {
    	int deltax = b.x - a.x;
    	int deltay = b.y - a.y;
    	int p = (2*deltay) - deltax;
    	point tmp;
    	tmp.x = a.x;
    	tmp.y = a.y;
    	for (int i=0; i<=deltax ; i++)
    	{
    		cout<<"("<<tmp.x<<" , "<<tmp.y<<" )\n";
    		tmp.x +=1;
    		if (p<0)
    		{
    			p += (2*deltay);
    		}
    		else
    		{
    			p += 2*(deltay - deltax);
    			tmp.y += 1;
    		}
    	}
    }
    J'utilise une classe point.
    Ce code que j'ai cr�e : il affiche les cordoonn�s sous forme (a,b).
    Je cherche la fonctions ou la biblioth�que C/C++ qui permet l'allumage d'un pixel sur l'�cran en donnant les coordonn�es de ce pixel, pas celles qui permet de dessiner des lignes, ou des cercles.

    remarque

    je cherche une fonction qui remplace :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    cout<<"("<<tmp.x<<" , "<<tmp.y<<" )\n"
    par l'allumage du pixel de cordonn�es ( tmp.x , tmp.y ).

    MERCI

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    SetPixel() et SetPixelV() qui est plus rapide.

    (s'emploient dans le m�me contexte que MoveToEx() et LineTo(), agissent donc sur la fen�tre. (Je ne sais pas si on peut agir sur l'�cran lui-m�me)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. POO dessiner un objet dans une fenetre
    Par gabrielS dans le forum Langage
    R�ponses: 2
    Dernier message: 06/06/2013, 23h56
  2. [D�butant] utiliser les stripbuttons pour afficher les form dans une fenetre windows unique
    Par halil.zakaria dans le forum VB.NET
    R�ponses: 3
    Dernier message: 12/08/2011, 09h42
  3. Ouvrir un fichier dans une fenetre Windows
    Par mimish dans le forum Langage
    R�ponses: 8
    Dernier message: 24/03/2010, 21h00
  4. probleme de disposition avec GridBagLayout dans une fenetre
    Par thierry_b dans le forum Agents de placement/Fen�tres
    R�ponses: 4
    Dernier message: 17/07/2009, 11h08
  5. [debutant]dessins dans une fenetre
    Par drosophile dans le forum 2D
    R�ponses: 4
    Dernier message: 04/11/2004, 14h55

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