[C++] App Win32, affichage du bureau = crash (DC effacé)

App Win32, affichage du bureau = crash (DC effacé) [C++] - C++ - Programmation

Marsh Posté le 13-04-2002 à 16:01:36    

Je crée un application Win32 (fenêtre crée avec CreateWindow() avec topmost (always on top).
Je récupère le hdc = GetDC(hwnd) et je dessine dans ce context. La c ok. Mais dès que j'affiche le bureau en cliquant sur l'icône à coté du bouton démarrer et bien tout ce que j'avais fait dans hdc est effacé. Ceci juste à l'affichage du bureau, pas d'une autre fenêtre. Donc comment éviter cela ?
J'ai essayé de dessiner dans le message WM_PAINT mais ça ne change rien, tout est effacé !
merci
 ANT

Reply

Marsh Posté le 13-04-2002 à 16:01:36   

Reply

Marsh Posté le 13-04-2002 à 16:14:18    

WM_SHOW peut-être ?
On ne sait jamais...
Je ne sais pas ce que Windows fait exactement quand il cache/affiche les fenêtres via cette icône.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 13-04-2002 à 17:50:10    

antsite a écrit a écrit :

Je crée un application Win32 (fenêtre crée avec CreateWindow() avec topmost (always on top).
Je récupère le hdc = GetDC(hwnd) et je dessine dans ce context. La c ok. Mais dès que j'affiche le bureau en cliquant sur l'icône à coté du bouton démarrer et bien tout ce que j'avais fait dans hdc est effacé. Ceci juste à l'affichage du bureau, pas d'une autre fenêtre. Donc comment éviter cela ?
J'ai essayé de dessiner dans le message WM_PAINT mais ça ne change rien, tout est effacé !
merci
 ANT  




 
Tu dis que tu fais un GetDC mais fais-tu un ReleaseDC après avoir fini de dessiner ?


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 13-04-2002 à 17:55:35    

ou dessine tu ton truc?
et si tu veux le mettre dans WM_PAINT, c'est pas GetDC qu'il faut utiliser


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 13-04-2002 à 18:26:44    

Non à l'origine je ne le dessine pas dans WM_PAINT mais simplement après CreateWindowEx().
Et oui je fais bien un ReleaseDC après chaque GetDC();

Reply

Marsh Posté le 13-04-2002 à 18:43:12    

ben forcement si tu dessine apres CreateWindow ton dessin ne va pas rester.
faut dessiner dans le msg WM_PAINT.
obtient le DC avec BeginPaint
 
Windows ne garde pas le contenu de la fenetre c'est pourquoi tu dois le redessiner toi meme


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed