[API WIN32] Création d'une courbe dans un Dialog

Signaler
Messages postés
22
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
7 août 2007
-
Messages postés
22
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
7 août 2007
-
Bonjour,

Je développe actuellement un projet sous Visual C++ avec pluseurs Dialog Box en API.

Sur l'une d'entre elles, je voudrais afficher un graphique (une courbe provenant de plusieurs points ou d'une équation) qui dépendra de valeurs entrées dans des "Edit Box". Je cherche donc à créer une grille vide et à mettre un graphe à l'intérieur!
Que dois-je utiliser comme contrôle pour mettre se graphe?
Ensuite quelles fonctions utiliser pour le créer?
Existe-t-il un tutoriel pour cela? Ou un code source simple auquel je pourrai me référer?
Si non, pourriez vous me donnez quelques tuyaux?

Merci d'avance...

5 réponses

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,
Tu peux créer un rectangle avec un fond blanc ta boite de dialogue en utilisant Rectangle() ou FillRect(). Tu dessines ensuite la grille dans une boucle avec MoveToEx() et LineTo(). La couleur de la grille sera par exemple gris clair. Avec SetPixel(), tu dessines les points de la courbe.
Voici un code qui pourrait t'aider:
http://www.cppfrance.com/codes/TRACE-COURBES-PARTIR-FICHIER-TEXTE-GDI_37237.aspx
Messages postés
22
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
7 août 2007

OK, je vois à peu près. Merci.
N'y a-t-il pas plus simple à partir de l'éditeur de ressources?
Messages postés
285
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 janvier 2013

Salut !
J'avais fait un truc dans le genre il y a longtemps, le principe était le suivant :
Creer une brosse via un bitmap
dessiner un rectangle plein avec cette brosse.

Les fonctions utiles (voir leur doc sur MSDN)
HBRUSH CreatePatternBrush(HBITMAP hbmp);
int FillRect(HDC hDC, CONST RECT *lprc, HBRUSH hbr);
HGDIOBJ SelectObject(HDC hdc, HGDIOBJ hgdiobj);
BOOL DeleteObject(HGDIOBJ hObject);

Après tu dessine ce que tu veux sur ton bitmap, comme par exemple ... une grille ? lol

Sinon, il y a aussi des brosse "logiques", mais la tu contrôle pas la taille de la grille.
LOGBRUSH Brosse;
Brosse.lbStyle = BS_HATCHED;
Brosse.lbColor 0; //0 noir, si tu veux autre chose : RGB(r,g,b); en remplacant r, g, et b par des valeurs numériques
Brosse.lbHatch = HS_CROSS;
HBRUSH CreateBrushIndirect(&Brosse);
Messages postés
22
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
7 août 2007

Merci pour ces infos...
Comment dois-je faire après pour tracer ma courbe et mes axes(unités, titres, etc...)?
Quels sont les fonctions à utiliser et où puis-je trouver des infos, des exemples ou un tuto?
Messages postés
22
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
7 août 2007

Je viens de trouver ce code très intéressant à ce sujet:
http://www.codeproject.com/miscctrl/High-speedCharting.asp

Le problème est que c'est écrit en MFC...
Quelqu'un as-t-il une solution pour le passer en WIn32?
Merci