Souris (avec des pointilles)

Soyez le premier à donner votre avis sur cette source.

Vue 3 855 fois - Téléchargée 175 fois

Description

Voila des doitres en pointillees !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
3
Faux !
Si je fais InvalidateRect(...,FALSE) ai lieu de InvalidateRect(...,TRUE)
alors il n'efface pas !
Messages postés
18
Date d'inscription
dimanche 16 juin 2002
Statut
Membre
Dernière intervention
8 novembre 2003

Attention, InvalidateRect n'est pas super comme fonction, parce qu'elle efface tout avant que tu ne réaffiche tes lignes, donc il y a un moment ou rien n'est affiché dans la zone cliente de la fenêtre, d'où le problème de scintillement.
Messages postés
18
Date d'inscription
dimanche 16 juin 2002
Statut
Membre
Dernière intervention
8 novembre 2003

Excuse moi pour le premier code, j'ai malencontreusement ajouter le commentaire avant qu'il soit complet...
Messages postés
18
Date d'inscription
dimanche 16 juin 2002
Statut
Membre
Dernière intervention
8 novembre 2003

Ce qui donne, en plus clair, la gection du message WM_PAINT suivante :

case WM_PAINT:
{
HDC hdc;
PAINTSTRUCT ps;
HPEN hPen;

char buf[256],buf2[256];
int len;

hdc = BeginPaint (hwnd, &ps);
// le pinceau
hPen = CreatePen(PS_DOT,1,RGB(0,0,0));
// autres:
// PS_DASH
// PS_DASHDOT
// PS_DASHDOTDOT
//
RECT rect;
HBITMAP hBmp = CreateCompatibleBitmap(hdc, rect.right, rect.bottom);
HDC hMemDC = CreateCompatibleDC(hdc);
SelectObject(hMemDC, hBmp);
SelectObject(hMemDC,hPen);
// on trace les axes
/*
SetROP2(hdc,R2_WHITE);
*/
line(hMemDC,cxMouse,0,cxMouse,cyClient);
line(hMemDC,0,cyMouse,cxClient,cyMouse);
// on formate les textes

len = sprintf(buf,"( %d / %d , %d / %d )",cxMouse,cxClient,cyMouse,cyClient);
// pour le titre de la fentre
strcpy(buf2,"Coordonnees de la souris : ");
strcat(buf2,buf);

// on dessine !
TextOut(hMemDC,cxMouse+1,cyMouse+1,buf,len);
BitBlt(hdc, 0, 0, rect.right, rect.bottom, hMemDC, 0, 0, SRCCOPY);
SetWindowText(hwnd,buf2);


DeleteObject(hPen);
DeleteObject(hBmp);
DeleteDC(hMemDC);

EndPaint (hwnd, &ps) ;
return 0 ;
}


VOILA !!!
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
3
HEU... les bitmaps sont stockes ou en memoire ????
Parceque si c'est dans la RAM, je ne veut pas programmer des chose qui demande plein de memoire pour rien !

Il me suffit juste ai lieu de faire "InvalidateRect(hwnd,NULL,TRUE);" cacluler les bons rectangles !!!
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.