Windows窗口

  在这里继续看窗口相关的函数,前面看到的部分能够生成一个窗口。在hge的代码中,我们可以看到别的函数处理窗口相关的事情,当然不是指的消息处理函数。

  在hge中消息处理函数是最主要的函数之一,完成了整个游戏的信息输入。

  另外的和窗口相关的函数是

graphics.cpp
void HGE_Impl::_AdjustWindow()

void HGE_Impl::_Resize(int width, int height)

  从函数的名字中可以看到都是处理窗口的变化的函数

  实现 出现位置 作用
AdjustWindow

void HGE_Impl::_AdjustWindow()
{RECT *rc;LONG style;if(bWindowed) {rc=&rectW; style=styleW; }else  {rc=&rectFS; style=styleFS; }SetWindowLong(hwnd, GWL_STYLE, style);style=GetWindowLong(hwnd, GWL_EXSTYLE);if(bWindowed){SetWindowLong(hwnd, GWL_EXSTYLE, style & (~WS_EX_TOPMOST));SetWindowPos(hwnd, HWND_NOTOPMOST, rc->left, rc->top, rc->right-rc->left, rc->bottom-rc->top, SWP_FRAMECHANGED);}else{SetWindowLong(hwnd, GWL_EXSTYLE, style | WS_EX_TOPMOST);SetWindowPos(hwnd, HWND_TOPMOST, rc->left, rc->top, rc->right-rc->left, rc->bottom-rc->top, SWP_FRAMECHANGED);}
}

View Code

在graphics.cpp中被定义

1.在设置为窗口模式时调用(system.cpp:368);

2.在初始化DX的时候被调用(graphics.cpp:720)

设置窗口的格式、位置
Resize

void HGE_Impl::_Resize(int width, int height)
{if(hwndParent){//if(procFocusLostFunc) procFocusLostFunc();
d3dppW.BackBufferWidth=width;d3dppW.BackBufferHeight=height;nScreenWidth=width;nScreenHeight=height;_SetProjectionMatrix(nScreenWidth, nScreenHeight);_GfxRestore();//if(procFocusGainFunc) procFocusGainFunc();
    }
}

View Code

在graphics.cpp中被定义

1.在窗口发生大小变化时被调用(system.cpp:849)

在有父窗口的情况下要重新设置大小

对于Resize函数:

1.窗口模式下,hge中设置为窗口模式是不可调节大小的

2.全屏模式下,切换到桌面

转载于:https://www.cnblogs.com/yoru/p/5503326.html

hge source explor 0x3 windows module相关推荐

  1. hge source explor 0x2 windows module

    Windows窗口 hge的window窗口的具体建立是在System_Initiate函数中,现在将hge中关于Windows窗口相关的代码拿出来. Windows相关参数 windows attr ...

  2. hge source explor 0x5 input module

    Input Module 前面提到输入事件,那么对输入事件分类,分类如下 /* ** HGE Input Event type constants */ #define INPUT_KEYDOWN 1 ...

  3. hge source explor 0x4 input module

    Input Module hge中的输入并没有用到Direct Input,在window消息构造输入信息. 对于鼠标和键盘,输入信息用一个结构来处理,hge中的信息事件的结构 /* ** HGE I ...

  4. hge source explor 0x7 resource module

     Resource Module 首先是关于资源加载会用到的参数和类型. struct CResourceList{ char filename[_MAX_PATH];char password[64 ...

  5. hge source explor 0x6 input module

    Input Module 封装与输入相关的属性,函数. input.h struct CInputEventList {GEInputEvent event;CInputEventList* next ...

  6. hge source explor 0x1

    hge.h & hge_impl.h hge.h是给用户的,所以在这里会列出所有的用户能使用的接口. hge_impl.h是引擎的具体实现,在这里除了给用户的接口实现之外还有额外的实现过程中的 ...

  7. HGE source explor 0x0

    本文准备开始HGE游戏引擎的代码阅读,其实我已经阅读完HGE的代码了,这里将准备再重新阅读代码.阅读代码将准备将代码拆开阅读,按每种功能分开来阅读,分别准备如下: 游戏的窗口 对于任意一个程序来说,一 ...

  8. hge source explor 0x8 timer

    Timer 时间部分,在hge中提供对于fps的控制,时间的控制等. 其中会用到的参数有. hge_impl.h // Timerfloat fTime;float fDeltaTime;DWORD ...

  9. hge source explor 0xA graphics Ⅰ

    Graphics 在这一部分完成初始化DX,并且完成固定流水线,然后在进行渲染. 在这一部分会用到的数据结构和参数有: 参数: D3DPRESENT_PARAMETERS* d3dpp;D3DPRES ...

最新文章

  1. 关于生态、大数据和穿戴设备以及IT创新的畅想
  2. 我以前用过的一个洗牌算法
  3. Kilani and the Game
  4. 零基础如何学好Python?Python有哪些必须学的知识?
  5. 国外基于android的系统,基于Android的位置服务系统设计与实现
  6. HDU 3785 寻找大富翁(sort排序或优先队列)
  7. A3D8的水–WaterMaterial for Alternativa3D 8
  8. Java知多少(79)哈希表及其应用
  9. 为普通用户添加root权限
  10. 《跟我一起做J2EE版Blog–jPress》6(Spring集成Struts2,打通第一个Action)
  11. 奥哲徐平俊:乘风、冒险与未来
  12. 高频JMeter软件测试面试题
  13. 2022你不容错过的软件测试项目实战(web+app+h5+小程序)免费版
  14. 微信公众平台接入token验证失败php,PHP开发公众号token验证失败是什么意思?其中一个原因 筋斗云网络...
  15. 不良资产证券化未来推进需跨越的障碍
  16. 什么是等保?为什么要做等保?
  17. go语言编写php扩展,[原创]快速开发一个PHP扩展-Go语言中文社区
  18. CSS3新特性-变量
  19. C#的System.Diagnostics.Trace.WriteLine 写入文件
  20. 北京的味道-胡赳赳电子书下载

热门文章

  1. Vue封装电子写字板组件并生成图片地址
  2. 设计哲学背后的文化基因
  3. 供应链金融(一):商业保理产品架构介绍
  4. 代码精进之路~自明的代码
  5. day03_20211217_前端代码-奥莱资产管理系统
  6. 马克思主义哲学笔记汇总
  7. 有哪些免费视频转音频的软件?这有支持视频转音频的软件
  8. 《大数据+AI在大健康领域中最佳实践前瞻》---- 使用python PyHCUP 处理 hcup 数据集的asc 格式数据
  9. 顶尖的医学图像处理控件ImageGear Medical中文介绍下载
  10. ppt模板排版设计的原则有哪些?