我们最近将GL000从GLUT移植到SDL.这样做有很多好处,但也有一些缺点,特别是在窗口管理方面.

Bitfighter在固定宽高比窗口(800×600像素)下运行.用户可以将窗口设置为他们想要的任何大小,但我们捕获resize事件并调整所请求的大小以确保窗口保持正确的比例(使用SDL_SetVideoMode).

(以下问题适用于Windows,但尚未在其他平台上进行过测试.我在下面描述的内容特指Windows,但我正在寻找独立于平台的解决方案.)

通常,这种方法很有效,除非用户通过双击标题栏或使用最大化按钮来最大化窗口.在这种情况下,调用窗口调整大小事件的窗口大小接近屏幕大小(减去窗口装饰的一些像素).不幸的是,当窗口最大化时,SDL_SetVideoMode没有效果(与能够调整最大化窗口的GLUT不同).此外,后续调用SDL_GetVideoInfo报告我们请求的大小,而不是窗口的实际当前大小,因此很难判断尝试的大小调整是否有效.

我正在寻找一种独立于平台的方式来执行以下任何操作(按优先级降序排列):

>在窗口最大化后调整窗口大小

>检测窗口何时最大化,以便知道我无法调整窗口大小,我至少可以将视频调整为居中

>防止窗口最大化(阻止双击窗口标题栏,使用最大化按钮,并将窗口拖动到屏幕顶部)

Bitfighter是用C语言编写的,我们正在使用SDL的最新官方版本.

c语言窗口最大化,使用SDL处理最大化的窗口相关推荐

  1. html最小化窗口,[转载]js实现窗口(支持拉伸,拖拽,最大化,最小化,滚动

    雨亭原创,转载注明 执行效果: 一窗体实现的功能: 1.鼠标拖动. 2.八个方向的拉伸. 3.可定制窗口标题,内容(文本或HTML),初始大小和位置,最小宽度,高度. 4.支持滚动条. 5.关闭窗体. ...

  2. Electron无边框窗口(最小化、最大化、关闭、拖动)以及动态改变窗口大小

    文章目录 一.目标原型 1. 目标 2. 原型设计 3. 原型初步实现 二.无边框窗口 1. 要点 2. 改造 三.可拖拽区 1. 要点 2. 改造 四.最小化.最大化.关闭 1. 要点 2. 改造 ...

  3. WPF 自定义窗口在扩展屏的最大化

    很多应用需要定制化窗口,而窗口定制化不能绕过的一个问题是标题栏定制化. 基于wpf的窗口程序,一般会通过透明,去边框化的方式将原有的标题栏遮挡. 默认情况下,wpf 窗口的标题栏是这样的, 这时最化小 ...

  4. 《C语言到底能干什么》1.5 在窗口上写上“Hello World”(高手莫看)

    1.5 在窗口上写上"Hello World" 再次声明:高手莫看,浪费时间 这一节我们乘胜追击,来继续深入学习下,学习窗口处理时间的东东. 也许你以前听说过,windows系统是 ...

  5. C++ 主程序中打开子程序窗口隐藏,操作控件 遍历窗口控件句柄EnumChildWindows();获取其他程序进度条数据 操作选择框 按钮点击

    1.线程启动子程序  ShowWindow(hWnd, SW_SHOW)显示 ShowWindow(hwnd, SW_HIDE);隐藏 system_hide(L"Odin3.exe&quo ...

  6. 计算机窗口是什么意思解释,Windows电脑窗口是什么?关于电脑窗口的一些基础知识...

    现在,很多的操作系统都是视窗操作系统,比如:Windows.linux.iOS等.这些系统都是由一个个窗口组成的?那么,什么是窗口呢?举个简单的例子,比如双击我的电脑之后,就打开了一个窗口,如下图所示 ...

  7. python 窗口最小化_如何让tkinter窗口最小化

    GUI编程,代码可以控制程序窗口的最大化,或者全屏显示,也可以控制窗口的最小化.本文介绍如何实现tkinter窗口的最小化,这一文写完,同学们对窗口的最大化,最小化,全屏,就都可以实现代码级的操控了. ...

  8. PyQt5窗口最小化后,任务栏窗口预览(Windows速览)持续刷新(C++ Qt同理)

    PyQt5 / Qt窗口最小化后,鼠标悬停,任务栏窗口预览(Windows速览)继续保持刷新状态 问题描述 解决方案 完整代码 问题描述 最近在做一个PyQt5项目,其中有一个功能是窗口启动后开始计时 ...

  9. wps里表格中间的字怎么置顶_如何让wps保持窗口最前_怎么把wps窗口置顶

    2020-03-04 15:40:25 wps是一款办公软件套装,可以实现办公软件最常用的文字.表格.演示等多种功能.win10系统打开编辑想让wps窗口置顶,也就是显示在其它窗口前面,这样能第一时间 ...

最新文章

  1. 2.SDL游戏开发:把代码写长一点(一)
  2. 2020 最新 JVM 生态报告
  3. C++ 中使用 goto 编译通不过
  4. php框架中uri路由机制,URI 路由 — CodeIgniter 3.1.5 中文手册|用户手册|用户指南|中文文档...
  5. 使用webpack打包ES6代码
  6. opencv图片分类+特征图片截取
  7. cad的lisp程序大集合_大数据成神之路-Java高级特性增强(CopyOnWriteArraySet)
  8. mysql5.7忘记root密码解决方法_MySQL5.7忘记root密码处理
  9. oracle 01157,Oracle数据库启动时出现ORA-01157和ORA-01110问题
  10. c#位图转换未矢量图_PS基础:像素与分辨率,位图与矢量图
  11. windows10环境下curl 安装与配置
  12. 4999以内阿拉伯数字转罗马字符
  13. 国内使用cousera
  14. OTU/ASV/Feature tabel 表格 过滤 相对丰度 微生物
  15. 在图3-30 中,某学院的以太网交换机有三个接口分别和学院三个系的以太网相连,另外三个接口分别和电子邮件服务器、万维网服务器以及一个连接互联网的路由器相连。图中的A,B和C都是100Mbit/s以太网
  16. Linux服务之DHCP服务篇(scp)
  17. Long tailed 长尾分布论文汇总
  18. 计算机专业英语电池,电池分为哪几种?英文缩写?
  19. 状态栏QStatusBar
  20. 判断身份证号码的正确性源码

热门文章

  1. vs2010括号不成对_C++ VS2010 括号匹配 求强人解答
  2. foreach循环符合就不往下走了_Java基础入门篇——For循环
  3. linux 读取 gateway ip socket,linux下获取本地IP信息(没看代码)
  4. mysql事务会不会上锁_MySQL事务以及加锁机制
  5. selenium使用TestNG实现DDT
  6. 2014计算机二级c语言试题及答案,2014计算机二级C语言测试题及答案解析六之二...
  7. 大数据项目开发案例_大数据开发相关术语解析
  8. 用python批量下载网络图片_python批量下载图片的三种方法
  9. 顺序栈的基本操作c语言源代码,顺序栈的栈基本操作(C语言版)
  10. vue中如何在方法中动态的删除集合中的元素!?