当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

<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++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .