Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1358 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Win] Comment rafraichir la fenêtre?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Win] Comment rafraichir la fenêtre?

n°303346
Alload
Posté le 06-02-2003 à 17:56:56  profilanswer
 

Je commence à en avoir marre avec ce prog tournant sous Win32 :fou:
 
En fait j'aimerais faire une une boucle de ce genre pour le prog:
 

Code :
  1. while (fin de l'application)
  2. {
  3. GestionDesMessagesWindows();
  4. FaireTournerUneFoisMaFonction();
  5. AfficherLeResultat();
  6. }


 
J'ai besoin de rafraichir après chaque tour de programme la fenetre car les données auront changé. Pour le moment j'utilise ça:
 

Code :
  1. while (1)
  2. {
  3.  if (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
  4.  {
  5.   if (!GetMessage(&msg, NULL, 0, 0))
  6.    return msg.wParam;
  7.   TranslateMessage(&msg);
  8.   DispatchMessage(&msg);
  9.  }
  10.  else
  11.  {
  12.   g_pTasSable->Process();
  13.   g_pTasSable->PresentSceneImage(hWnd);
  14.  }
  15. }


 
Ca marchait très bien avec mon moteur 3D mais pas pour mon appli Windows, il n'y a jamais rien qui s'affiche!
 
La fonction PresentSceneImage() marche bien, donc ça ne vient pas de là.
 
Pourriez-vous m'aider?

mood
Publicité
Posté le 06-02-2003 à 17:56:56  profilanswer
 

n°303377
HelloWorld
Salut tout le monde!
Posté le 06-02-2003 à 18:59:47  profilanswer
 

c'est à PresentSceneImage de mettre à jour le contenu de la fenetre, en blitant dedans par exemple.
Pour raffraichier, on utilise UpdateWindow qui envoit WM_PAINT.
Mais dans ton cas cela ne convient pas.
AMHA, le mieux c'estd'avoir une fonction Draw.
Dans WM_PAINT, tu appelles Draw.
Dans PresentSceneImage, tu appelles Draw. (ou alors dans WM_PAINT tu appelles PresentSceneImage )


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°303390
Alload
Posté le 06-02-2003 à 19:21:54  profilanswer
 

J'appelle déjà une fonction Draw dans la fonction PresentSceneImage():
 

Code :
  1. void PresentSceneImage(HWND hwnd)
  2. {
  3. PAINTSTRUCT ps;
  4. HDC hdc = BeginPaint(hwnd, &ps);
  5. Graphics graphics(hdc);
  6. graphics.DrawImage(pSceneImage, 0, 0);
  7. EndPaint(hwnd, &ps);
  8. }


 
Donc je ne comprends pas pourquoi rien ne s'affiche...


Message édité par Alload le 06-02-2003 à 19:22:15
n°303400
HelloWorld
Salut tout le monde!
Posté le 06-02-2003 à 19:26:15  profilanswer
 

Arf ... BeginPaint ... EndPaint ... c'est uniquement lors de WM_PAINT
vire les et utilise GetDC.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°303415
Alload
Posté le 06-02-2003 à 19:36:09  profilanswer
 

Ah ok merci!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Win] Comment rafraichir la fenêtre?

 

Sujets relatifs
impossiblilité de maximiser la fenetrequestion gestion de fenetre
Infos sur une autre fenêtreComment désactiver l'apparition d'une fenêtre dos sous WIndows ?
[Html/Javascript] Forcer le browser a rafraichir une page...(VBA et Access) Empecher l'affichage d'une fenetre d'importation
[Help] Souci aux niveaux des sessions sous Win XP [presque Resolu]Comment rafraichir une frame à la fermeture d'un pop up ?
Session qui se détruise lorsque l'on ferme la fenêtre 
Plus de sujets relatifs à : [Win] Comment rafraichir la fenêtre?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR