Simple Direct Draw Using MFC
Firstly, forgive me for my code. I have really tried my best to make is as easy to read as possible but DirectX is never the easiest thing to code. I originally wanted to write DirectX applications but found that every book I read relating to DirectX was coded using SDK material and not MFC. I wanted to create a very simple wrapper that allowed the easy display of bitmaps on the screen using DirectDraw.
The code itself is fairly limited to displaying bitmaps on the screen (FULLSCREEN MODE) using DirectDraw but it shows the concepts of using wrappers to make your programs far easier to use. I could have put it all in a DLL but realised that this would not be simple for you all to use. Anyway, here is how you use the libraries.
1. Include the following header into your Application Header or StdAfx.h. E.g
#include "DirectControl.h"
2. Create an instance of the CDirectControl Object. For example:
CDirectControl m_Control;
3. In the App Init Instance call the following code:
m_pMainWnd = m_Control.CreateFullScreen(800,600,16);
if (!m_pMainWnd)
return FALSE;
4. You can now use the Controller to create bitmaps (from the resource) using the code :
m_Control.CreateOffScreenSurface("My Bitmap",IDB_IMAGE);
The first parameter is the object identifier that I use to manipulate or select the object at a further time. The second parameter is the resource id of the bitmap.
You also need to tell the controller that the bitmap is available to be rendered. The default is false so you need to set the visibility by using the code:
m_Control.GetSurface("My Bitmap")->SetRender(TRUE);
5. The bitmaps are defaulted to the top left of the screen (x=0,y=0) but you can alter its position by using:
m_Control.GetSurface("My Bitmap")->SetPosition(10,10);
6. Once you have created your bitmap/s you can render the screen by calling:
m_Control.Render(TRUE,FALSE,FALSE);
Ok. What I suggest is that you look at the example project I have done. If anyone wishes to expand it further etc. I would welcome and more additional source code or comments. Please dont laugh at my code. I just wanted Direct X to be easy for everyone. Enjoy.
BTW... I havn't implemented the Escape key so you will have to press ALT-F4 to quit.

Comments
Please help me on Directshow + MFC
Posted by nvnoi76 on 12/01/2004 09:56pmHi, I write a program to play Video files using Directshow and MFC ( Visual C++ 6.0 , DirectX 9.0 ) I compile in DEBUG mode, It runs well and correctly. But when I compile in RELEASE mode. It reports error : "Unhandle exception in Playwnd.exe (MFC42.dll)0xC0000005: Access Violation" Is there any problem on MFC42.dll ? Please help me to correct it. Thank you very much. Noi - nvnoi76@yahoo.com
ReplyDirectX : embed text in video stream ~Need help
Posted by Legacy on 10/30/2003 12:00amOriginally posted by: HS
ReplyNeed Help Loading X Files in Direct X
Posted by Legacy on 10/04/2003 12:00amOriginally posted by: Ace Corban
Im gay :}
ReplyGood for beginners
Posted by Legacy on 05/08/2003 12:00amOriginally posted by: sunil
I found this example helpful to begin with DirectX
Replythanks
Same old Stopping problem
Posted by Legacy on 08/15/2002 12:00amOriginally posted by: amit mankikar
hi,
i have used your classes in my SDI application to display Bitmaps in full screen mode. However i want the additional functionality of going back to the windowed mode as soon as the user presses "Escape".
How do I do it ?
amit mankikar
ReplyNo header includes with texture and utils
Posted by Legacy on 03/19/2002 12:00amOriginally posted by: Shura
No header includes with texture and utils
Reply
sehr sch�n
Posted by Legacy on 12/09/2001 12:00amOriginally posted by: Olaf kliss
ReplyHallo Eva,
sehr sch�n gemacht, weiter so. Ich bin auf der Suche nach den Methoden zur direct Programmierung.
GUI not responding to mouse events after playing mpeg file using DirectShow
Posted by Legacy on 10/25/2001 12:00amOriginally posted by: RK
The problem I have is as follows:
An MPEG file is played using DirectShow in GUI made using MFC on VC++. I pause the video clip midway, in order to draw a rectangle around a chosen area in the paused frame. But the GUI now no longer is able to respond to mouse events. Can somebody give me a clue as to why this could be happening ?
Regards,
ReplyRK
Who to play MPG files using DDraw Pay windows SDK with MFC appli. ??
Posted by Legacy on 09/24/2001 12:00amOriginally posted by: Marty
ReplyExtremly easy to use
Posted by Legacy on 08/24/2001 12:00amOriginally posted by: Imran Baig
ReplyLoading, Please Wait ...