begin process at 2012 05 29 21:33:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

probleme, objet GDI monte constament ds le gestionnaire de tache apres chaque OnPaint()


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

probleme, objet GDI monte constament ds le gestionnaire de tache apres chaque OnPaint()

mardi 14 juin 2005 à 20:51:20 | probleme, objet GDI monte constament ds le gestionnaire de tache apres chaque OnPaint()

gege1024

j'affiche une bmp issu des ressource comme ci-dessous.
le pb est que dans le gestionnaire de tache, je vois le nombre d'objet GDI monter constament a chaque OnPaint() de la fenetre, et vu que j'affiche bcp de bmp, mon appli bloque a peu prés de 12 rafraichissements  (ce qui est trés peu !!!!!!)



 CDC* pDC = GetDC();
 CDC* pMemDC;

 pMemDC = new CDC;
 pMemDC->CreateCompatibleDC(pDC);

 pMemDC->SelectObject(bitmap_absnm);
 pDC->BitBlt(101+(x*54),53+(y*14),7,7,pMemDC,0,0,SRCAND);
pMemDC->SelectObject(bitmap_absnm);
pDC->BitBlt(101+(x*54),53+(y*14),7,7,pMemDC,0,0,SRCAND);
pMemDC->SelectObject(bitmap_absnm);
pDC->BitBlt(101+(x*54),53+(y*14),7,7,pMemDC,0,0,SRCAND);
....
....
 delete pMemDC;

ps: je delete une seule fois a la fin mais meme si je delete aprés chaque BitBlt ca change rien



gege

mardi 14 juin 2005 à 20:53:04 | Re : probleme, objet GDI monte constament ds le gestionnaire de tache apres chaque OnPaint()

gege1024

bien sur mon code du premier message est un exemple (je ne redessine pas plusieurs fois le bmp au meme endroit :  faute au copié collé)

gege

mardi 14 juin 2005 à 20:55:21 | Re : probleme, objet GDI monte constament ds le gestionnaire de tache apres chaque OnPaint()

vecchio56

Administrateur CodeS-SourceS
Il faut libérer le DC: pDC->ReleaseDC();
Tu est sur que delete pMemDC est suffisant? (je sais pas trop, est ce qu'un DeleteObject est fait dans le destructeur? Je pense que oui mais à vérifier).

mardi 14 juin 2005 à 21:04:17 | Re : probleme, objet GDI monte constament ds le gestionnaire de tache apres chaque OnPaint()

gege1024

sauf que chez moi
ReleaseDC();  n'est pas membre de CDC


gege

mardi 14 juin 2005 à 21:09:52 | Re : probleme, objet GDI monte constament ds le gestionnaire de tache apres chaque OnPaint()

vecchio56

Administrateur CodeS-SourceS
ReleaseDC(pDC);
Pardon, je connais mal les MFC
mardi 14 juin 2005 à 21:22:19 | Re : probleme, objet GDI monte constament ds le gestionnaire de tache apres chaque OnPaint()

gege1024

non, c'est moi, j'ai pas precisé MFC, dsl

gege

mardi 14 juin 2005 à 21:48:08 | Re : probleme, objet GDI monte constament ds le gestionnaire de tache apres chaque OnPaint()

gege1024

j'ai trouvé:

il fallait faire
DeleteObject();
apres un
LoadBitmap(IDB....);

enfin, je pense, parce que je n'ai plus de pb de gdi
gege

vendredi 30 décembre 2005 à 03:38:23 | Re : probleme, objet GDI monte constament ds le gestionnaire de tache apres chaque OnPaint()

Denis007

Pour que ce code soit correct il faudrais aussi appeller la fonction releaseDC,
en effet quand vous demandez l'utilisation du DisplayContext de window et
même si, en même temps vous déclarer la variable, ceci vous demande aussi,
d'après les normes, car ce context d'affichage en le plus goumand en ressource,
de libérer ce handle qui augmente régulièrement...

Les méandres de windows sont ainsi définie...

ps : pouvez vous m'indiquer quel programme observe ainsi les handes du GDI.

vendredi 30 décembre 2005 à 13:52:25 | Re : probleme, objet GDI monte constament ds le gestionnaire de tache apres chaque OnPaint()

gege1024

le gestionnaire de taches (processus)

gege

vendredi 30 décembre 2005 à 13:55:25 | Re : probleme, objet GDI monte constament ds le gestionnaire de tache apres chaque OnPaint()

vecchio56

Administrateur CodeS-SourceS
Pour une bitmap, les fuites seront si énormes qu'on les voit à la quantité de mémoire vive utilisée

1 2

Cette discussion est classée dans : objet, gdi, pdc, bitblt, pmemdc


Répondre à ce message

Sujets en rapport avec ce message

Problème à résoudre [ par progmaster ] Bonjour,je travail sur un projet et je suis comlpètement bloqué je demande donc l'aide des autres programmeurs.Voilà l'egnime je veut crée un programm Objet GDI et MFC [ par GEDEON ] Bonjour a tous,    Je suis en train de faire un programme de mot-croisés et j'utilise un CView avec les objets GDI...    Est-il possible de changer la MFC: Drag and Drop d'objet [ par Breizhim ] Bonjour!Le drag and drop de fichier est expliqué et re-expliqué sur le net.Mais mon besoin est différent, sachant que l'utilisation des MFCs m'est imp pb de camera [ par mauvaisdawa ] je suis sur un projet de simulation d'helicoptère. j'ai un probleme concernant mes caméras. celle du dessus, ya aucun probleme, mais celle de derrière un peu perdu... [ par sheorogath ] bjr ,me remettant au c++ pour la enieme fois je voulais creer un petit programme permettant de lister les fichier d'un certain type alors je commence connaitre la position d'un objet [ par mutan35 ] Tout d'abord bonjour, j'aimerai savoir s'il est possible de connaitre la position d'un objet (genre une petite image) Exemple: j'ai une image de 20*20 base de données orientée objet [ par houda_b ] Bonjourje cherche un cours complet sur base de données orientée objet et un exemple de code source en XMLmerci d'avance[rouge]<FONT face="Lucida partage mémoire entre programme c++ [ par jcloupgarou ] bonjour,J'ai deux programmes en c++ : une appli A de modélisation 3d et une appli B permettant de charger un fichier de type Step (catia). L'appli A e Comment recupéré un element d'une liste? [ par Sat83 ] Bonjour!J'ai une liste d'Objet:list canaux;Où Data est une classe...Comment faire pour récupéré le Nième element de cette liste?Comme avec un tableau Constucteur avec objet en argument ?? [ par vincemail ] Bonjour, je suis débutant en C++ et donc voilà, je pense que le titre est assez explicite, j'aimerai faire une classe Cercle dont le constructeur pren


Nos sponsors


Sondage...

Comparez les prix

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 : 1,763 sec (3)

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