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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值