<b>计划自己的3D图象引擎(3):WuguiEngine之底子循环的实现</b>[VC/C++编程]
本文“<b>计划自己的3D图象引擎(3):WuguiEngine之底子循环的实现</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1. 实现一个可重用的Windows Class(WEWindow)
下面的内容大概需求你知道一点简单的Windows程序编写的知识, 假如发现看不太懂, 也不用找很多的资料, 只要看看DirectX SDK中附带的Direct3D Turtorial就行了.
窗体的成立主如果有以下的难点:
1) 消息循环中的On Idle的处理函数不太好放.
2) WinMain函数进口处的HInstance需求保存
3) 窗体成立之后的HWND也是需求保存的
为了便利起见,我利用了单件情势作为计划,假如大家有更好的设法,也欢送谈论
WEWindow类的声明看起来有点像这个模样:
1: /* IRenderable.h : 处理初始化窗体的类,利用单件情势
2: Programer : Tan Wangda(LeftNotEasy)
3: Email : Wheeleast@gmail.com
4: Created Time : 2009 - 8 - 10 */
5:
6: #ifndef _WEWINDOW_H
7: #define _WEWINDOW_H
8:
9: # include "WuguiEngine.h"
10:
11: namespace WuguiEngine
12: {
13: //这是一个Singleton
14: class WEWindow
15: {
16: public:
17: //得到窗体类的实例
18: static WEWindow* GetInstance();
19:
20: //设置HInstance
21: void SetHInstance(HINSTANCE hInst);
22: //获得HInstance
23: HINSTANCE GetHInstance();
24:
25: //设置窗体
26: void SetWEWindow(LPCWSTR szTitle, //窗体标题
27: int iWidth, //宽度
28: int iHeight, //高度
29: DWORD iStyle); //款式
30:
31: void CreateMainWindow();
32:
33: int GetWidth();
34: int GetHeight();
35:
36: //获得窗体句柄
37: HWND GetHWnd();
38: protected:
39: HINSTANCE hInst;
40: HWND hWnd;
41:
42: //窗体标题
43: LPCWSTR szTitle;
44:
45: //宽度
46: int iWidth;
47:
48: //高度
49: int iHeight;
50:
51: //款式
52: DWORD iStyle;
53:
54: //成立窗体
55: void CreateWEWindow(LPCWSTR szTitle, //窗体标题
56: int iWidth, //宽度
57: int iHeight, //高度
58: DWORD iStyle); //款式
59:
60: //进入消息循环
61: void EnterMessageLoop();
62: private:
63: static WEWindow* weInstance;
64: WEWindow();
65: };
66: }
67:
68: #endif
代码的命名基本上也可以看出意义, 别的再给一段利用WEWindow的函数,位于Program.cpp里面
1: INT WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR, int)
2: {
3: //第一步,设置窗体
4: WEWindow* weWindow = WEWindow::GetInstance();
5: weWindow->SetHInstance(hInstance);
6: weWindow->SetWEWindow(L"Hello World", 640, 480, WS_OVERLAPPEDWINDOW | WS_VISIBLE);
7: weWindow->CreateMainWindow();
首先代码获得处WEWindow类的实例,然后设置参数,最后调用CreateMainWindow就完成了操作了
以上是“<b>计划自己的3D图象引擎(3):WuguiEngine之底子循环的实现</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |