將MFC與DirectX9結合使用

    將DX+MFC,一般用來實現地圖編輯器的效果,因爲單純使用DX+Win32來寫地圖編輯器框架需要做很多工作,而用MFC問題就簡單化了,你所要做的就是在響應事件中編寫代碼。

    首先我根據MFC的框架與消息傳遞路線(具體參見侯捷老師的深入淺出MFC),我們發現一個主窗體事實上管理一個當前激活窗口(View)的成員變量,而這個變量正是MFC用來分管渲染的對象(MFC著名的文檔-視圖模式,文檔框架爲用戶提供數據管理,而視圖框架爲用戶提供顯示管理),在這個當前激活窗口中(View)中,我們發現包含了一個HWND句柄,這個句柄正是建立與初始化DX相關對象所必需的,因此我將DX模塊的初始化與調用放在了自定義視圖的類內。

    在這裏,我建議,將DX的所有方法在另一個DLL項目中建立,並生成鏈接庫,便於MFC使用。

    步驟一:

    初始化DX相關對象,這一步需要參數是HWND與窗體的高寬,因此,可以在OnPaint消息響應函數中完成,因爲在這裏我們可以通過GetClientRect來確定窗口寬度。

    步驟二:

    選擇1:

    實時更新的遊戲界面,這裏我們需要重載PreTranslateMessage,函數,這個函數在每次分發消息時調用,爲的就是每次都更新。

    選擇2:

    如果你要做圖片編輯器,那麼不需要每次都更新窗體,只要在每一次響應鍵盤修改命令時更新就可以了,因此我們可以將更新放在OnKeyDown或者OnChar之類的消息響應函數中。

 

    具體的效果,在未來幾天做實驗驗證。

    Enjoy!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章