Voila, je suis en train d'ajouter une fenetre avec du Direct3D dans une appli générée précedemment par l'appwizard de VC++ 6.0
Code :
- // L'affichage est géré comme suit dans le OnDraw
- void CMyView:: OnDraw(CDC* pDC) {
- Render(); // Render() est une méthode de CMyView
- }
- // Puis j'ai overridé le OnIdle de CWinApp pour rafraichir la vue :
- BOOL CMyApp:: OnIdle() {
- ((CMyView*) m_pMainWnd)->RedrawWindow(NULL,NULL,RDW_INVALIDATE); // ça ça marche nickel
- ((CMyView*) m_pMainWnd)->Render(); // ça ça marche pô : pourquoi ?????
- return TRUE;
- }
|
Y a ptêtre des erreurs de recopie mais la question que je pose, c'est pourquoi ça foire en appelant directement Render sans passer par le OnDraw. Il n'y a aucune raison tangible. Je comprends rien. Dans ce cas là, la vue ne se met à jour que lors d'un resize.
Indice supplémentaire : Render() n'utilise à aucun moment un CDC* ou un CWnd*. Render() effectue des appels Direct3D très basiques.
J'ai pas envie de réécrire toute mon appli sans MFC pour juste ajouter un peu de direct3D.
Merci par avance.
PS :
Youdontcare, tes conseils dans mon précédent topic m'ont été très utiles. La doc PLanetSide est très instructive.
---------------
Pipiru piru piru pipiru pi