[Win] Comment rafraichir la fenêtre?

Comment rafraichir la fenêtre? [Win] - C++ - Programmation

Marsh Posté le 06-02-2003 à 17:56:56    

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?

Reply

Marsh Posté le 06-02-2003 à 17:56:56   

Reply

Marsh Posté le 06-02-2003 à 18:59:47    

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
Reply

Marsh Posté le 06-02-2003 à 19:21:54    

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
Reply

Marsh Posté le 06-02-2003 à 19:26:15    

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


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 06-02-2003 à 19:36:09    

Ah ok merci!

Reply

Sujets relatifs:

Leave a Replay

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