Sample program for programing DirectX on MFC.
Microsoft Visual C++ + MFC の環境下で DirectX を使うにはどうすればいいか? という質問がいくつかあったので、それに答えるためのサンプルプログラムです。
VC4.0J + MFC4.0 を対象にしていますが、VC2.0 + MFC3.0 でもメインの部分(CMainFrame)には殆ど違いはないので、自分で AppWizardで MDIのスケルトンを作り、CMexApp::InitInstance()からDocument作成を消し、CMainFrameの中身を手作業で移植してください。
このプログラムは、画面モード変更/ページフリップ/VRAM直接アクセスという、DirectDrawの最低限の機能しか使っていません。MFCでタイマーを使わない高速アニメーションを行なうためのインプリメントもしてあります。(タイマーはWin95では最低間隔が長いし弱いので使えない) ここまでできれば、後の機能(高度なBitBltとかパレット切り替えとか)はDirectXのサンプルプログラムがそのまま通用します。そちらを参照してください。
ウィンドウモードはサポートしていませんが、DirectDrawのウィンドウモードは遅いしクリッピングやら位置あわせやら自分でやる必要もあって面倒なので、CreateDIBSection()を使ったほうが良いでしょう。DirectDrawの固有の機能(高度なBitBltとか)に依存してる場合は、その限りではありませんが。
なお、Mexとは metys's exampleを示しています。