hge source explor 0x3 windows module
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相关推荐
- hge source explor 0x2 windows module
Windows窗口 hge的window窗口的具体建立是在System_Initiate函数中,现在将hge中关于Windows窗口相关的代码拿出来. Windows相关参数 windows attr ...
- hge source explor 0x5 input module
Input Module 前面提到输入事件,那么对输入事件分类,分类如下 /* ** HGE Input Event type constants */ #define INPUT_KEYDOWN 1 ...
- hge source explor 0x4 input module
Input Module hge中的输入并没有用到Direct Input,在window消息构造输入信息. 对于鼠标和键盘,输入信息用一个结构来处理,hge中的信息事件的结构 /* ** HGE I ...
- hge source explor 0x7 resource module
Resource Module 首先是关于资源加载会用到的参数和类型. struct CResourceList{ char filename[_MAX_PATH];char password[64 ...
- hge source explor 0x6 input module
Input Module 封装与输入相关的属性,函数. input.h struct CInputEventList {GEInputEvent event;CInputEventList* next ...
- hge source explor 0x1
hge.h & hge_impl.h hge.h是给用户的,所以在这里会列出所有的用户能使用的接口. hge_impl.h是引擎的具体实现,在这里除了给用户的接口实现之外还有额外的实现过程中的 ...
- HGE source explor 0x0
本文准备开始HGE游戏引擎的代码阅读,其实我已经阅读完HGE的代码了,这里将准备再重新阅读代码.阅读代码将准备将代码拆开阅读,按每种功能分开来阅读,分别准备如下: 游戏的窗口 对于任意一个程序来说,一 ...
- hge source explor 0x8 timer
Timer 时间部分,在hge中提供对于fps的控制,时间的控制等. 其中会用到的参数有. hge_impl.h // Timerfloat fTime;float fDeltaTime;DWORD ...
- hge source explor 0xA graphics Ⅰ
Graphics 在这一部分完成初始化DX,并且完成固定流水线,然后在进行渲染. 在这一部分会用到的数据结构和参数有: 参数: D3DPRESENT_PARAMETERS* d3dpp;D3DPRES ...
最新文章
- 关于生态、大数据和穿戴设备以及IT创新的畅想
- 我以前用过的一个洗牌算法
- Kilani and the Game
- 零基础如何学好Python?Python有哪些必须学的知识?
- 国外基于android的系统,基于Android的位置服务系统设计与实现
- HDU 3785 寻找大富翁(sort排序或优先队列)
- A3D8的水–WaterMaterial for Alternativa3D 8
- Java知多少(79)哈希表及其应用
- 为普通用户添加root权限
- 《跟我一起做J2EE版Blog–jPress》6(Spring集成Struts2,打通第一个Action)
- 奥哲徐平俊:乘风、冒险与未来
- 高频JMeter软件测试面试题
- 2022你不容错过的软件测试项目实战(web+app+h5+小程序)免费版
- 微信公众平台接入token验证失败php,PHP开发公众号token验证失败是什么意思?其中一个原因 筋斗云网络...
- 不良资产证券化未来推进需跨越的障碍
- 什么是等保?为什么要做等保?
- go语言编写php扩展,[原创]快速开发一个PHP扩展-Go语言中文社区
- CSS3新特性-变量
- C#的System.Diagnostics.Trace.WriteLine 写入文件
- 北京的味道-胡赳赳电子书下载