-J'aime beaucoup ce genre de projet ou on fait travailler la matiere grise.bonne continuation -Je deteste lire et analyser les sources des autres (sauf si j'en ai vraiment besoin et je trouve pas d'aide à MDSN) je te dis ça juste pour t'informer que je vais me baser ds ma reponse juste sur tn Exe et ton message au forum sans lire ta source, donc si j'ai raté qq chose que tu as explique ds ton code c'est à toi de me le signaler
/*Supposons que les Id de tes editbox sont : IDC_EDIT1 pour Xmin IDC_EDIT2 pour Xmax IDC_EDIT3 pour XSCL IDC_EDIT5 pour YMIN IDC_EDIT6 pour YMAX IDC_EDIT7 pour YSCL et hwnd le HANDLE de ta fenetre */
///////////Code///////////////////////////////// //declaration des variables POINT pp; //ça va nous servir pour tracer les axes (ligne) POINT centre;//coordonnées du centre du rectangle ou tu veux tracer tes graphes RECT rcGraphe;//Rectangle où tu vas tracer tes graphes. HDC hdc; char cText[3]; int iMin,iMax,iScl,iNbre,iSautreel,iValAct;
//////////////////////////////////////// /*Debut Traitement*/ ///////////////////////////////////////
hdc = GetDC(hWnd);
/*/////////// Apres tu dois remplir les valeur centre.x et centre.y Exemple: GetClientRect(hWnd,&rcGraphe); centre.x = (rcGraphe.right-rcGraphe-left)/2 centre.y = (rcGraphe.bottom-rcGraphe.top)/2 ///////////*/
MoveToEx(hdc, rcGraphe.left, centre.y, NULL); LineTo(hdc,rcGraphe.right,centre.y); //on vient de tracer l'axe horizontal MoveToEx(hdc, centre.x, rcGraphe.top, NULL); LineTo(hdc,centre.x,rcGraphe.bottom); //on vient de tracer l'axe vertical
// Remplir l'axe horizontal iMin=GetDlgItemInt(hwnd,IDC_EDIT1,NULL,TRUE); iMax=GetDlgItemInt(hwnd,IDC_EDIT2,NULL,FALSE); iScl=GetDlgItemInt(hwnd,IDC_EDIT3,NULL,FALSE); iNbre=(iMax-iMin)/iScl; Sautreel=(rcGraphe.right-rcGraphe-left)/iNbre; pp.x=rcGraphe.left; pp.y=centre.y; iValAct=iMin; while(pp.x<=rcGraphe.right) { MoveToEx(hdc, pp.x, pp.y -10, NULL); LineTo(hdc,pp.x, pp.y +10); //Tracer les petits traits au dessus de chaque numero wsprintf(cText,"%d",iValAct); TextOut(hdc,pp.x,pp.y-20,cText,sizeof(cText)-1);//dessiner les numero pp.x += Sautreel; iValAct+=iScl; } // A toi de faire la meme chose pour l'axe vertical
/////////////////////////////////////// /* FinCode */ ///////////////////////////////////////
Si tu as des remarques ou d'autres question, n'hesite pas...
|