begin process at 2012 02 11 23:16:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

un truc tout bête surement ...


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

un truc tout bête surement ...

jeudi 20 mars 2003 à 20:28:19 | un truc tout bête surement ...

GreatNeo

voila le problème,
je suis sous vc++ en win32. je crée un timer avec un intervalle donné et à chaque WM_TIMER j'appelle la fonction suivante:
void dessine(int x){
hdc = BeginPaint(hwnd,&ps);
SelectObject(hdc, CreatePen(PS_SOLID, 1, RGB(255, 0, 0)));
MoveToEx(hdc, x, 0, NULL);
LineTo(hdc, x, 500);
EndPaint(hwnd,&ps);
}

Elle est censée me dessiner une ligne mais rien n'apparait dans la fenêtre, pourtant j'ai vérifier et la fonction est appelé correctement. Si quelqu'un sait donc çà vient, merci d'avance ...
jeudi 20 mars 2003 à 21:52:45 | Re : un truc tout bête surement ...

Kaid


A première vue ton code devrait fonctionner, attention tout de même à l'allocation/désallocation des objets GDI. Le code si dessous libére le "stylo" qui tu crées:

void dessine(int x)
{
PAINTSTRUCT &ps;
HDC hdc=BeginPaint(hwnd,&ps);
HPEN hMyPen=CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
HGIOBJ hOldObj=SelectObject(hdc, hMyPen);

MoveToEx(hdc, x, 0, NULL);
LineTo(hdc, x, 500);

SelectObject(hdc, hOldObj);
DeleteObject(hMyPen);

EndPaint(hwnd, &ps);
}

Sinon tu as testé quelles étaient les différentes valeurs de 'x', s'il reste bien dans la fenêtre ?

Kaid - kaid.fr.st

-------------------------------
Réponse au message :
-------------------------------

> voila le problème,
> je suis sous vc++ en win32. je crée un timer avec un intervalle donné et à chaque WM_TIMER j'appelle la fonction suivante:
> void dessine(int x){
> hdc = BeginPaint(hwnd,&ps);
> SelectObject(hdc, CreatePen(PS_SOLID, 1, RGB(255, 0, 0)));
> MoveToEx(hdc, x, 0, NULL);
> LineTo(hdc, x, 500);
> EndPaint(hwnd,&ps);
> }
>
> Elle est censée me dessiner une ligne mais rien n'apparait dans la fenêtre, pourtant j'ai vérifier et la fonction est appelé correctement. Si quelqu'un sait donc çà vient, merci d'avance ...
jeudi 20 mars 2003 à 22:02:15 | Re : un truc tout bête surement ...

BruNews

Administrateur CodeS-SourceS
hdc = BeginPaint(hwnd,&ps);
INVALIDE hors de du message WM_PAINT, il faut placer ton code dedans ou refaire ta func.
hdc = GetDC(hwnd);
mais preferer la 1ere solution, tu prepares les params et ton timer fait InvalidateRect(...). Ainsi fonctionnera.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

>
> A première vue ton code devrait fonctionner, attention tout de même à l'allocation/désallocation des objets GDI. Le code si dessous libére le "stylo" qui tu crées:
>
> void dessine(int x)
> {
> PAINTSTRUCT &ps;
> HDC hdc=BeginPaint(hwnd,&ps);
> HPEN hMyPen=CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
> HGIOBJ hOldObj=SelectObject(hdc, hMyPen);
>
> MoveToEx(hdc, x, 0, NULL);
> LineTo(hdc, x, 500);
>
> SelectObject(hdc, hOldObj);
> DeleteObject(hMyPen);
>
> EndPaint(hwnd, &ps);
> }
>
> Sinon tu as testé quelles étaient les différentes valeurs de 'x', s'il reste bien dans la fenêtre ?
>
> Kaid - kaid.fr.st
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > voila le problème,
> > je suis sous vc++ en win32. je crée un timer avec un intervalle donné et à chaque WM_TIMER j'appelle la fonction suivante:
> > void dessine(int x){
> > hdc = BeginPaint(hwnd,&ps);
> > SelectObject(hdc, CreatePen(PS_SOLID, 1, RGB(255, 0, 0)));
> > MoveToEx(hdc, x, 0, NULL);
> > LineTo(hdc, x, 500);
> > EndPaint(hwnd,&ps);
> > }
> >
> > Elle est censée me dessiner une ligne mais rien n'apparait dans la fenêtre, pourtant j'ai vérifier et la fonction est appelé correctement. Si quelqu'un sait donc çà vient, merci d'avance ...
>
jeudi 20 mars 2003 à 22:05:05 | Re : un truc tout bête surement ...

Kaid


Ah oui, comme le souligne BruNews, j'espère quand même que tu es dans une fonction traitant le message WM_PAINT :-)

Kaid - kaid.fr.st

-------------------------------
Réponse au message :
-------------------------------

> hdc = BeginPaint(hwnd,&ps);
> INVALIDE hors de du message WM_PAINT, il faut placer ton code dedans ou refaire ta func.
> hdc = GetDC(hwnd);
> mais preferer la 1ere solution, tu prepares les params et ton timer fait InvalidateRect(...). Ainsi fonctionnera.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > A première vue ton code devrait fonctionner, attention tout de même à l'allocation/désallocation des objets GDI. Le code si dessous libére le "stylo" qui tu crées:
> >
> > void dessine(int x)
> > {
> > PAINTSTRUCT &ps;
> > HDC hdc=BeginPaint(hwnd,&ps);
> > HPEN hMyPen=CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
> > HGIOBJ hOldObj=SelectObject(hdc, hMyPen);
> >
> > MoveToEx(hdc, x, 0, NULL);
> > LineTo(hdc, x, 500);
> >
> > SelectObject(hdc, hOldObj);
> > DeleteObject(hMyPen);
> >
> > EndPaint(hwnd, &ps);
> > }
> >
> > Sinon tu as testé quelles étaient les différentes valeurs de 'x', s'il reste bien dans la fenêtre ?
> >
> > Kaid - kaid.fr.st
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > voila le problème,
> > > je suis sous vc++ en win32. je crée un timer avec un intervalle donné et à chaque WM_TIMER j'appelle la fonction suivante:
> > > void dessine(int x){
> > > hdc = BeginPaint(hwnd,&ps);
> > > SelectObject(hdc, CreatePen(PS_SOLID, 1, RGB(255, 0, 0)));
> > > MoveToEx(hdc, x, 0, NULL);
> > > LineTo(hdc, x, 500);
> > > EndPaint(hwnd,&ps);
> > > }
> > >
> > > Elle est censée me dessiner une ligne mais rien n'apparait dans la fenêtre, pourtant j'ai vérifier et la fonction est appelé correctement. Si quelqu'un sait donc çà vient, merci d'avance ...
> >
>


Cette discussion est classée dans : truc, bête, hdc, surement, ps


Répondre à ce message

Sujets en rapport avec ce message

pb gdi api [ par torsepoilu ] torsepoilutorsepoiluavec le code suivant, j'obtiens un rectangle sur un font bizarre au lieu d'un fond vert, je ne vois pas d'ou vien HELP!! comment rafraichir [ par kuruma ] LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){   static string chemin;  static int count=0;  static bool se Utilisation de CxImage [ par Claude_URBAN ] Bonjour, J'essaie d'apprendre à utilser correctement CxImage.(Sous XP, avec Visual C++ 2005 E LoadImage DevC++ [ par guitoulefoux ] Bonjour,Je cherche a mettre un fond d'écran dans ma form.Pour cela il faudrait que j'utilise loadimage.Je pense déjà avoir pas bien avancé (Merci BruN DevC++ Fond d'ecran. [ par guitoulefoux ] Bonjour,Je cherche a afficher un fond d'ecran dans ma form.Grace a BruNews a qui je dis un grand merci ( je te paye une mousse quand tu veux), j'ai pu BeginPath et TextOut [ par Xentor609 ] salut,Voilà un morceau du code:case WM_PAINT:{ PAINTSTRUCT ps; HDC hdc=BeginPaint(hwnd,&ps); SetBkMode(hdc,TRANSPARENT); BeginPath(hdc); Tex un rectangle dans IDD_DIALOG2 ? [ par F0ra ] Bonjour,<?xml:namespace prefix = problème avec bitblt [ par gregory6 ] GringoBonjour,je suis développeur débutant sous visual C++ et les MFC. Je cherche à afficher le contenu d'un répertoire sur une page graphique que je Couleur de fenêtre [ par CyberP ] Comment changer la couleur d'arrière plan d'une fenêtre après l'avoir créée ?PAINTSTRUCT pps;HDC hdc;hdc = BeginPaint(hWnd, &pps);SelectObject(hdc, Cr mon image s'efface!!! [ par tdeco ] BonjourEn fait, j'ai une boite de dialogue avec plusieurs boutons et une zone ou j'affiche une image bmp. Pour afficher l'image, je procède par la faç


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 2,683 sec (3)

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