See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: [C++] GDI+ et DrawEllipse  (Read 1817 times)

0 Members and 1 Guest are viewing this topic.

Offline laserpithium

  • Legend
  • ******
  • Posts: 1473
  • Karma: 0
13 September 2007, 14:03:14
Bonjour à tous,

J'essaye (vainement) de tracer une ellipse sur une MFD.
En lisant la msdn de Microsoft, ils expliquent une sombre histoire de DrawEllipse(), et de Graphics.

J'ai essayé de faire quelque chose à partir des exemples donnés, mais je n'y arrive pas. Plus particulièrement, je n'arrive
pas à créer un objet Graphics à partir de mon HDC.

Est-ce que quelqu'un pourrait me transférer un bout de code qui marche, en précisant les include qui vont bien ?

Merci !



La sagesse me cours après, mais je suis plus rapide
Si Dieu existe, butons-le !

Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #1 - 13 September 2007, 14:23:17
Code: [Select]
#define RED RGB(255, 0, 0)

int d = pHPS->Markersize/2;
   
HPEN NewPen0 = CreatePen(PS_SOLID, 1, RED);  // création du pen dans HPEN ,type ,epaisseur, couleur RGB

int cx = pHPS->CX, cy = pHPS->CY;
if (cx >= -d*3 && cx < pHPS->W+d*3 && cy >= d && cy < pHPS->H+d*5)
{
SelectObject (hdc, NewPen0); //selection d'un pen
Ellipse (hdc, cx+d*10.5, cy-d, cx+d*17.5, cy-d*8 ); // puis tu dessines ce que tu veux
}
...
Et tu t'inquiètes pas pour Markersize, CX et compagnie, ça
fait partie d'une structure fournie par l'oapi pour le GDI ...
Y'a même un scale .... pas besoin que je t'explique à quoi ça sert ...



Message modifié ( 13-09-2007 14:55 )

Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #2 - 13 September 2007, 14:39:29
Attention quand même au HPEN NewPen0 = CreatePen

C'est une ressource qui doit être créée (globale) pour toutes les instances au
lancement de la dll et detruite quand la dll ce termine (DeleteObject).
Ne pas la créer juste avant l'affichage ou juste dans une instance.

Dan



Message modifié ( 13-09-2007 14:45 )


Offline laserpithium

  • Legend
  • ******
  • Posts: 1473
  • Karma: 0
Reply #3 - 13 September 2007, 17:38:23
Merci les mecs


« Last Edit: 13 September 2007, 17:38:23 by laserpithium »

La sagesse me cours après, mais je suis plus rapide
Si Dieu existe, butons-le !