begin process at 2012 05 30 10:09:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

tracer une courbe à partir d'un tableau dans une fenêtre


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

tracer une courbe à partir d'un tableau dans une fenêtre

lundi 24 avril 2006 à 15:43:41 | tracer une courbe à partir d'un tableau dans une fenêtre

jul41

Salut! je dois réaliser un projet dont une partie consiste à tracer une courbe caractérisant une force appliquée sur un capteur. J'essaie pour ça de faire d'abord simple en traçant une courbe à partir d'un tableau, mais la courbe n'apparaît pas... j'ai utilisé plusieurs infos du site mais sans résultat, si vous pouviez me dire ce qui ne va pas svp. j'ai quelques notions en c et c++ mais rien en api.
une partie du programme est la suivante:

#include <Windows.h>

LRESULT CALLBACK MainProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 WNDCLASSEX principale;
 principale.cbSize=sizeof(WNDCLASSEX);
 principale.style=CS_HREDRAW|CS_VREDRAW;
 principale.lpfnWndProc=MainProc;
 principale.cbClsExtra=0;
 principale.cbWndExtra=0;
 principale.hInstance=hInstance;
 principale.hIcon=LoadIcon(NULL,IDI_APPLICATION);
 principale.hCursor=LoadCursor(NULL,IDC_ARROW);
 principale.hbrBackground=reinterpret_cast<HBRUSH>(COLOR_WINDOW+1);
 principale.lpszMenuName=NULL;
 principale.lpszClassName="std";
 principale.hIconSm=LoadIcon(NULL,IDI_APPLICATION);
 RegisterClassEx(&principale);

 HWND hWnd;
 hWnd=CreateWindowEx(
  WS_EX_CLIENTEDGE,
  "std",
  "fenetre",
  WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT,
  CW_USEDEFAULT,
  CW_USEDEFAULT,
  CW_USEDEFAULT,
  NULL,
  NULL,
  hInstance,
  NULL
  );
 ShowWindow(hWnd,SW_SHOW);

 MSG msg;
 while(GetMessage(&msg,NULL,0,0)==TRUE)
 {
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }
 return 0;
}

LRESULT CALLBACK MainProc(HWND hWnd, UINT mes, WPARAM wParam, LPARAM lParam)
{
 HDC hDC;
 PAINTSTRUCT paintst;
 switch (mes)
 {
 case WM_PAINT:
  hDC=BeginPaint(hWnd,&paintst);
  int tab[15];
  int i;
  int value;
  int compteur;
  compteur=0;
  for(i=1;i<=15;i++)
  {
   tab[i];
  }
  for(;;)
  {
   value=tab[compteur];
   SetPixel(hDC,compteur,value,RGB(0,255,0)); //pixel de couleur verte
   compteur+=1;
   if(compteur==15) {break;}
  }
  EndPaint(hWnd,&paintst);
  return 0;
 case WM_DESTROY:
  PostQuitMessage(0);
  return 0;
 default:
  return DefWindowProc(hWnd, mes, wParam, lParam);
 }
}

lundi 24 avril 2006 à 17:38:11 | Re : tracer une courbe à partir d'un tableau dans une fenêtre

Taron31

Membre Club
Salut, je veux pas dire de bêtises mais il me semble que tu devrais plutôt appliquer les appels de fonctoins SetPixel sur un HDC mémoire, pour créer ce MemDC utilise CreateCompatibleDC et n'oublie pas de le libérer avec DeleteDC a la fin du WM_PAINT. Et pour finir tu appliques un BitBlt à partir de ton MemDC sur ton hDC, ce qui aura normalement pour effet d'appliquer les pixels sur la surface client.
En espérant t'avoir aider...


___________________
MVS
- Most Valuable Student ( Microsoft)
lundi 24 avril 2006 à 20:43:24 | Re : tracer une courbe à partir d'un tableau dans une fenêtre

satellite34

SDK propose ceci sinon :

DrawSpline(xyArray, tolerance, flags);


@+;
satellite34

http://wxcod.free.fr/forum/

lundi 24 avril 2006 à 21:20:57 | Re : tracer une courbe à partir d'un tableau dans une fenêtre

jul41

merci pour la reponse, mais je comprends pas tres bien comment et quand on se sert de BitBlt, qu'est-ce qu'il faut lui mettre dans la parenthèse?
lundi 24 avril 2006 à 21:45:26 | Re : tracer une courbe à partir d'un tableau dans une fenêtre

Taron31

Membre Club
Vas voir sur MSDN : [ Lien ]

___________________
MVS
- Most Valuable Student ( Microsoft)
lundi 24 avril 2006 à 21:59:50 | Re : tracer une courbe à partir d'un tableau dans une fenêtre

jul41

j'ai changé une partie du programme en m'inspirant de différentes discussion, et ca donne ça (mais ca ne fonctionne toujours pas...):

 PAINTSTRUCT paintst;
 HDC hDC;
 HDC hMemDC;
 switch (mes)
 {
 case WM_PAINT:
  hDC=BeginPaint(hWnd,&paintst);
  hMemDC=CreateCompatibleDC(hDC);
  int tab[15];
  int i;
  int value;
  int compteur;
  compteur=0;
  for(i=1;i<=15;i++)
  {
   tab[i];
  }
  for(;;)
  {
   value=tab[compteur];
   SetPixel(hMemDC,compteur,value,RGB(0,255,0)); //pixel de couleur verte
   BitBlt(hDC,0,0,100,100,hMemDC,0,0,SRCCOPY);
   compteur+=1;
   if(compteur==15) {break;}
  }
  DeleteDC(hMemDC);
  EndPaint(hWnd,&paintst);
  return 0;

si vous voyez une erreur...
lundi 24 avril 2006 à 22:43:41 | Re : tracer une courbe à partir d'un tableau dans une fenêtre

Taron31

Membre Club
Il faut juste mettre le SetPïxel dans ta boucle for(;;) et ensuite avant le DeleteDC tu fais le BitBlt...

___________________
MVS
- Most Valuable Student ( Microsoft)
lundi 24 avril 2006 à 22:59:07 | Re : tracer une courbe à partir d'un tableau dans une fenêtre

jul41

mais le SetPixel est déjà dans la boucle for(;;), et si je mets le BitBlt juste avant le DeleteDC, ça ne marche tjs pas...

  for(;;)
  {
   value=tab[compteur];
   SetPixel(hMemDC,compteur,value,RGB(0,255,0)); //pixel de couleur verte
   BitBlt(hDC,0,0,100,100,hMemDC,0,0,SRCCOPY);
   compteur+=1;
   if(compteur==15) {break;}
  }
  DeleteDC(hMemDC);
  EndPaint(hWnd,&paintst);
  return 0;
lundi 24 avril 2006 à 23:03:10 | Re : tracer une courbe à partir d'un tableau dans une fenêtre

Taron31

Membre Club
T'as essaye ça :

for(;;)
  {
   value=tab[compteur];
   SetPixel(hMemDC,compteur,value,RGB(0,255,0)); //pixel de couleur verte
   compteur+=1;
   if(compteur==15) {break;}
  }
 BitBlt(hDC,0,0,100,100,hMemDC,0,0,SRCCOPY);
DeleteDC(hMemDC);
EndPaint(hWnd, &paintst);

?
___________________
MVS
- Most Valuable Student ( Microsoft)
lundi 24 avril 2006 à 23:09:20 | Re : tracer une courbe à partir d'un tableau dans une fenêtre

jul41

oui c ça que j'ai essayé, excuse moi pour le dernier message, j'ai fait bêtement un copier coller sans rien changer...

1 2

Cette discussion est classée dans : int, compteur, hwnd, principale, hinstance


Répondre à ce message

Sujets en rapport avec ce message

[C++]Problème de pointeur ou de liste chainee [ par Arkko ] Bonjour... J'essaye de convertir une liste chainée du site en une liste chainée demandant comme parametre un new par exemple ajouter(new Test);Cela f Erreur incompréhensible et insoluble pour moi.... [ par jb60 ] Voilà, je vais inscrire le source que j'ai tapé (une partie du source plutôt). J'ai l'impression que tout est correct, mais le compilo me fait une err new - debug / release [ par magic_Nono ] PB du new.... alors que ça passe avec des alloc classiquesOn me conceil d'utiliser des new plutot que des malloc en C++très bien maisvoici un petit mo pb avec fonctions sqrt de math.h [ par fox88 ] voici mon code : void histod::calcul_moyenne_ecartype(){ //CALCUL MOYENNE DU NB D'APPELS MOYEN JOURNALIER unsigned long accu=0; int moyenne=0;<br comment recuperer des données chiffrées contenues dans une editbox ? [ par pidoumtimo ] Bonjour a tous.Je suis actuellement sur un pgm permettant de faire des calcul a partir de donnée insérées par un utilisateur sous forme de chiffres da Apeler Fonction WINAPI [ par tontonjab ] voila, je voudrais apeler une fonction de type:INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR cmdline, INT )seulement, comme jutilise MFC je ne Affichage avec API Windows [ par PunkDude424 ] Bon j'ai un problème avec l'affichage à l'aide de L'api win32Je suis débutant en la matière et j'ai le problème suivant.J'ai une application client se WIN32 Dev-cpp: Le bouton refuse d'afficher le bitmap [ par gekkko ] Bonjour!Je n'arrive pas à faire afficher un bitmap sur un bouton CreateWindow.Le bitmap se charge pourtant bien puisque le .EXE grossit.La compilation Probleme : error LNK2001: unresolved external symbol... [ par Mr.X ] Tous d'abor bonjour, quand je compile mon programme (visual c++ 6.0), il m'affiche cette erreur, ece que quelqu'un pourrais l'aider ? :Main.obj : erro


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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,905 sec (4)

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