2009-01-07 9 views
0

Je développe une application pour l'enregistrement vidéo et je veux superposer l'aperçu vidéo avec un logo et une minuterie d'enregistrement.Question DirectDraw - exécuter l'application comme une application Windows régulière

J'ai essayé d'exécuter l'application en plein écran et tout a bien fonctionné. Ensuite, j'ai essayé d'exécuter l'application en tant qu'application Windows régulière et il a renvoyé une erreur.

Quelqu'un peut-il jeter un oeil au code ci-dessous s'il y a un moyen de le modifier pour exécuter l'application comme une application Windows normale?

Répondre

2

Même lors de l'exécution fenêtré, vous devez créer une surface primaire, que ce n'est pas une surface flippable.

//full screen settings 
hr = DirectDrawCreate(NULL, &m_pDD, NULL); 
hr = m_pDD->SetCooperativeLevel(m_hWnd, DDSCL_NORMAL); 

ddsd.dwSize = sizeof(ddsd); 
ddsd.dwFlags = DDSD_CAPS; 
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; 

Outre la création d'une surface, vous aurez probablement besoin de créer une tondeuse pour la fenêtre. Pour un exemple complet, voir le paragraphe Exécution fenêtrée dans this GameDev article.

+0

C'est exactement ce que j'ai suggéré, mais est venu une heure plus tard !? –

+0

Oui, ce que vous avez suggéré, seulement légèrement amélioré et lien vers tutoriel fourni comme une valeur ajoutée. – Suma

2

Quelle erreur est-ce retourné?

Essayez aussi ceci:

ddsd.dwFlags = DDSD_CAPS; 
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; 
Questions connexes