begin process at 2012 05 29 19:12:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Nettoyer la fenetre windows


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

Nettoyer la fenetre windows

mercredi 8 mars 2006 à 20:53:43 | Nettoyer la fenetre windows

bordeaux

Bonjour,

je viens de faire ma premiere application grpahique et je remarque que lorsque le call_back WS_PAINT est appele,
il ne nettoie pas la fenetre.
case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        AfficherContenu(hWnd );
        EndPaint(hWnd, &ps);
        break;

En effet, les elements sont conserves sur la fenetre et donc superposer aux nouveaux.
Comment faut-il faire pour nettoyer la fenetre de tous les elements graphiques qui la compose?

Entre deux appels de WM_PAINT, les valeurs de AfficherContenu sont modifies.
Et lors du deuxieme appel la fenetre affiche les anciens et les nouveaux.

Merci d'avance.

mercredi 8 mars 2006 à 21:25:11 | Re : Nettoyer la fenetre windows

aardman

Membre Club
Réponse acceptée !
Salut,
Pour forcer la fenetre a se redessiner completement il faut utiliser InvalidateRect() en passant TRUE en dernier param, et eventuelement UpdateWindow() juste apres. Dans tout les cas, il ne faut jamais envoyer soit meme un WM_PAINT a une fenetre.
Par contre il semble que ton prog soit mal structuré, lors du WM_PAINT il faut dessiner en utilisant le HDC retourné par BeginPaint(), ce que ta fonction AfficherContenu() ne semble pas faire.
mercredi 8 mars 2006 à 22:59:46 | Re : Nettoyer la fenetre windows

SAKingdom

Membre Club
Réponse acceptée !
Ouais mais attention, ne met jamais de InvalideRect dans WM_PAINT car tu va faire ramer l'ordi au complet. Si tu veut une actualisation à intervale régulié avec cette technique, fait toi un timer (étudie la fonction SetTimer et WM_TIMER)

Petit exemple:

case WM_CREATE:
    SetTimer((Le hWnd de ta procédure), (l'ID du timer (1,2,3...)), (l'intervale en milliseconde), (le timerproc. tu peut le mettre null));
    /* ce que tu a à faire */
    break;

case WM_TIMER:
    /* ce que tu a à faire */
    break;

Et n'oublie pas a la fin du programme de fermer le timer avec KillTimer dans WM_DESTROY ou WM_CLOSE


Cette discussion est classée dans : windows, fenetre, hwnd, paint, nettoyer


Répondre à ce message

Sujets en rapport avec ce message

Comment ouvrir la fenetre Windows "Ouvrir Fichier" en C++ ? [ par Pol Hochon ] Salut !J'ai un problème pour un projet de C++.J'aimerais bien connaitre l'instruction en C++ quipermet d'ouvrir la boite de dialogue Windows "Ouvrir" plusieur fenetre mais une seule en mémoire... [ par Xs ] Bon, voila.Quand je fais une nouvelle fenetre avec un code ressemblant a ca : hwnd = CreateDialog(...);ShowWindow(hwnd,SW_SHOW);......bon, et bien il Comment faire un prog qui s'ouvre dans une fenetre Windows et pas Dos [ par fucker ] Vous connaisez mon probleme.Merci de m'aider. help : windows et ses fenetres [ par Shouwi ] j'ai vu sur le site ke l'on pouvait envoyer un message à une fenetre (ou un prog) par cette fonction : LRESULT SendMessage( HWND hWnd, UINT Ms Application windows sans fenetre [ par LordDaedalus ] BonjourJe cherche à faire une application windows en Visual CPP qui n'apparait pas à l'écran ni dans la barre de tache.Bref une appli Windows sans fen Dll Visual Aide [ par TheMaster ] Salut!j'ai un probleme, j'ai créer un logiciel permettant de visualiser des images.Les images sont stocke en ressource dans un dll.Mais je n'arrive pa impression en gtk+ [ par Kyla ] Bonjour !!!!!!Je programme en gkt+ version1.2 et j'ai reussi a adapter le source en C de ce site pour imprimer avec les bibliotheques de windows.h.Mon Une fenetre animee transparente [ par anthraxx ] Anthrax ignisque -- Le charbon et le feu C la seconde foi ke je poste sur ce sujet, mais j'ai un autre probleme. En gros: j'ai une fenetre transparent Fenetre windows [ par casafa ] Bonjour,Voici un bout de code de ma fenêtre Windows:WNDCLASSEX wincl;wincl.style = CS_OWNDC | CS_DBLCLKS ;J'aimerais savoir à quoi 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...

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 : 0,983 sec (4)

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