begin process at 2010 03 15 16:17:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

dessin


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

dessin

lundi 6 juin 2005 à 13:43:14 | dessin

anubis52100

bonjour je dessine en mfc dans un classe view.

voici mon code qui me sert a dessiner:

void CAView::OnLButtonDown(UINT nFlags, CPoint point)
{
 // TODO: Add your message handler code here and/or call default
  if ((nFlags & MK_LBUTTON) == MK_LBUTTON)
 {
  //On recupere le Device
   if(i==2)
   {
  CClientDC dc(this);
  //Dessine une ligne entre le point précedant et le point actuel
  dc.MoveTo(point.x-25,point.y);
  dc.LineTo(point.x+25,point.y);
  dc.LineTo(point.x+25,point.y+50);
  dc.LineTo(point.x-25,point.y+50);
  dc.LineTo(point.x-25,point.y);
 
  
   }

   if(i==3)
   {
    CClientDC dc(this);
    dc.MoveTo(point.x,point.y);
    dc.LineTo(point.x,point.y+50);
   }
  
   if(i==4)
   {
    CClientDC dc(this);
    //Dessine une ligne entre le point précedant et le point actuel
    dc.MoveTo(point.x,point.y);
    dc.LineTo(point.x,point.y+50);
    dc.LineTo(point.x,point.y+20);
    dc.LineTo(point.x-5,point.y+20);
    dc.LineTo(point.x+5,point.y+20);
   
   }
   if (i==5)
   {
    CClientDC dc(this);
    //Dessine une ligne entre le point précedant et le point actuel
    dc.MoveTo(point.x,point.y);
    dc.LineTo(point.x+50,point.y);
   }
   if(i==6)
   {
    CClientDC dc(this);
    //Dessine une ligne entre le point précedant et le point actuel
    dc.MoveTo(point.x,point.y);
    dc.LineTo(point.x+50,point.y);
    dc.LineTo(point.x+20,point.y);
    dc.LineTo(point.x+20,point.y-5);
    dc.LineTo(point.x+20,point.y+5);
   }
   if(i==7)
   {
    CClientDC dc(this);
    dc.MoveTo(point.x,point.y);
    dc.LineTo(point.x+50,point.y);
    dc.LineTo(point.x-50,point.y);
    dc.LineTo(point.x+50,point.y+1);
    dc.LineTo(point.x-51,point.y+1);
    
   // dc.LineTo(point.x+20,point.y+5);
    
    CClientDC dc2(this);
    dc2.MoveTo(point.x,point.y+5);
    dc2.LineTo(point.x+50,point.y+5);
    dc2.LineTo(point.x-50,point.y+5);
    dc2.LineTo(point.x+50,point.y+6);
    dc2.LineTo(point.x-51,point.y+6);
   }
   if (i==8)
   {
    CClientDC dc(this);
    //Dessine une ligne entre le point précedant et le point actuel
    dc.MoveTo(point.x-25,point.y);
    dc.LineTo(point.x+25,point.y);
    dc.LineTo(point.x+25,point.y+50);
    dc.LineTo(point.x-25,point.y+50);
    dc.LineTo(point.x-25,point.y);

     CClientDC dc2(this);
    dc2.MoveTo(point.x-20,point.y+5);
    dc2.LineTo(point.x+20,point.y+5);
    dc2.LineTo(point.x+20,point.y+45);
    dc2.LineTo(point.x-20,point.y+45);
    dc2.LineTo(point.x-20,point.y+5);
   }
   if(i==9)
   {
    CClientDC dc(this);
    dc.MoveTo(point.x,point.y);
    dc.LineTo(point.x,point.y-50);
    dc.LineTo(point.x,point.y-20);
    dc.LineTo(point.x-5,point.y-15);
    dc.LineTo(point.x,point.y-20);
    dc.LineTo(point.x+5,point.y-15);
   
   }
   i=0;
  }
 
 CView::OnLButtonDown(nFlags, point);
}


mon probleme est que je souhaiterai enregistrer limage que j'ai dessiner dans ma fenetre mais je ne trouve pas de fonction qui marche.

merci !

lundi 6 juin 2005 à 13:57:37 | Re : dessin

vecchio56

Administrateur CodeS-SourceS
Tu peux facilement la mettre dans une variable HBITMAP (ou CBitmap sous MFC), et créant un DC mémoire (memdc = CreateCompatibleDC(dc)) et en y séléctionnant une bitmap (hbmp = CreateCompatibleBitmap(dc); SelectObject(memdc, bmp)), puis en faisant un BitBlt de dc vers memdc.
Quand tu enregistrer, ca veut dire dans un fichier?

lundi 6 juin 2005 à 18:03:05 | Re : dessin

anubis52100

je maîtrise pas du tout ces fonction la peut tu m'expliquer comment tu fait pour enrigistrer dans un fichier bmp. aurai tu un exemple ou une application merci.
lundi 6 juin 2005 à 19:16:03 | Re : dessin

vecchio56

Administrateur CodeS-SourceS
Enregistrer dans un bmp je sais pas faire exactement
Cette source devrait t'aider: http://www.cppfrance.com/code.aspx?id=11128



Cette discussion est classée dans : lineto, dc, moveto, dc2, cclientdc


Répondre à ce message

Sujets en rapport avec ce message

Device context et StretchBlt ? [ par tavernier ] Bonjour, je suis en train de faire un générateur de fractale et j'ai besoin de mettre la fractale de coté pour ne pas avoir à tout recalculer pour la Probleme de DC [ par gus2647 ] Bonjour,Je programme avec les MFC et vc++ 6Je desire desiner un droite horizontale qui suit le mouvement de la souris et donc il faut que j efface le DC to bmp [ par sebseb42 ] salut a tous,voila, j'utilise la fonction BitBlt pour faire une capture d'ecran, ca c'est cool, ca fonctionne, j'ai la capture dans un DC, mnt ce que Obtention du DeviceContext d'un pictureBox(MFC) [ par Trollien ] Bonjour,je cherche à obtenir le DC d'un Control Picture afin de capturer l'ecran ou même juste une region, mais la fonction CWnd::GetDC() ne semble pa Mettre un Bitmap dans un DC [ par oRTEEZ ] Mais sans ls dessiner, juste pour l'initialiser pour ensuite pouvoir utiliser la foncyion StretchBlt afin de le la redimensionner.j'ai passe toute la Algo d'Huffman et fichier DC [ par Trollien ] Bonjour,j'ai qq soucis concernant l'algorithme d'huffman et sa sauvegarde sur fichier, si qqn pouvait me fournir la structure détaillée d'un fichier e CListCtrl et windowsXP [ par isnotgood ] Bonjour,Voilà mon problème, j'utilise un CListCtrl pour faire le suivi d'un traitement (j'affiche des icônes et du texte).Sur certaines machines sous Proble avec CListCtrl sous windows 2000 et XP [ par isnotgood ] Bonjour,Voilà mon problème, j'utilise un CListCtrl pour faire le suivi d'un traitement (j'affiche des icônes et du texte).Sur certaines machines sous alternative a PrintWindow [ par Manson ] Bonjour,je cherche le moyen de copier le dc d'une fenetre (meme cache) dans un dc. Est-ce possible.Je n'arrive pour le moment qu'a capturer le dc d'un Double Buffering [ par garslouche ] Salut !Je voudraid faire du double buffering mais même un truc simple ne fonctinne pas :HDC hDC = CreateCompatibleDC(hDestDC);MoveToEx(hDC,0,0,NULL);L


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales