Bonjour
Je voudrais savoir comment faire une boucle pour gerer les messages dans une MFC. car en ce moment je fait mon render dans la fonction onDraw et donc j'affiche ma fenetre directX une seule fois.
merci
Sylvain
Bonjour
Je voudrais savoir comment faire une boucle pour gerer les messages dans une MFC. car en ce moment je fait mon render dans la fonction onDraw et donc j'affiche ma fenetre directX une seule fois.
merci
Sylvain
salut sylvain !
As-tu été voir le lien que j'ai posté en réponse à ton dernier topic sur directX et MFC ? Au cas ou je te le redonne : http://www.gamedev.net/reference/art...rticle1778.asp
Normalement ca suffit...
oui je suis allé le voir mais je n'ai vu nulle part un truc qui ressemblait a une boucle de message et je n'ai pas fait exactement pareil pour initialiser directX.
dans ton code tu n'as pas un truc qui ressemble a ça :
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 MSG msg; ShowWindow( hWnd, SW_SHOWDEFAULT ); UpdateWindow( hWnd ); ZeroMemory( &msg, sizeof(msg) ); while( msg.message!=WM_QUIT ) { if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } else { Render(); } }
Sylvain
non c'est la MFC qui gère les messages...
toi tu doit rendre invalide ta fenetre (pour la redessiner) dans la methode onIdle de la classe winapp (donc à creer avec le classwizard). Il faudra aussi que tu désactive le redessinement traditionnel de la fenetre au profit du redessinnement fait par directX ...
en gros ca donne ca :
voila c tout...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 BOOL CMaverApp::OnIdle(LONG lCount) { // TODO: Add your specialized code here and/or call the base class CWinApp::OnIdle(lCount); AfxGetMainWnd()->Invalidate(false); return TRUE; }
@+
en ajoutant le code ci dessus j'ai une sorte de tremblement de l'image (l'image saute).
qu'est ce que tu veux dire avec ça :
Sylvainfaudra aussi que tu désactive le redessinement traditionnel de la fenetre au profit du redessinnement fait par directX ...
Avec ça, tes problèmes sont résolus
http://www.moon-labs.com/resources/I...9.0WithMFC.pdf
http://www.moon-labs.com/resources/Direct3D9MFC.zip
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager