c语言窗口最大化,使用SDL处理最大化的窗口
我们最近将GL000从GLUT移植到SDL.这样做有很多好处,但也有一些缺点,特别是在窗口管理方面.
Bitfighter在固定宽高比窗口(800×600像素)下运行.用户可以将窗口设置为他们想要的任何大小,但我们捕获resize事件并调整所请求的大小以确保窗口保持正确的比例(使用SDL_SetVideoMode).
(以下问题适用于Windows,但尚未在其他平台上进行过测试.我在下面描述的内容特指Windows,但我正在寻找独立于平台的解决方案.)
通常,这种方法很有效,除非用户通过双击标题栏或使用最大化按钮来最大化窗口.在这种情况下,调用窗口调整大小事件的窗口大小接近屏幕大小(减去窗口装饰的一些像素).不幸的是,当窗口最大化时,SDL_SetVideoMode没有效果(与能够调整最大化窗口的GLUT不同).此外,后续调用SDL_GetVideoInfo报告我们请求的大小,而不是窗口的实际当前大小,因此很难判断尝试的大小调整是否有效.
我正在寻找一种独立于平台的方式来执行以下任何操作(按优先级降序排列):
>在窗口最大化后调整窗口大小
>检测窗口何时最大化,以便知道我无法调整窗口大小,我至少可以将视频调整为居中
>防止窗口最大化(阻止双击窗口标题栏,使用最大化按钮,并将窗口拖动到屏幕顶部)
Bitfighter是用C语言编写的,我们正在使用SDL的最新官方版本.
c语言窗口最大化,使用SDL处理最大化的窗口相关推荐
- html最小化窗口,[转载]js实现窗口(支持拉伸,拖拽,最大化,最小化,滚动
雨亭原创,转载注明 执行效果: 一窗体实现的功能: 1.鼠标拖动. 2.八个方向的拉伸. 3.可定制窗口标题,内容(文本或HTML),初始大小和位置,最小宽度,高度. 4.支持滚动条. 5.关闭窗体. ...
- Electron无边框窗口(最小化、最大化、关闭、拖动)以及动态改变窗口大小
文章目录 一.目标原型 1. 目标 2. 原型设计 3. 原型初步实现 二.无边框窗口 1. 要点 2. 改造 三.可拖拽区 1. 要点 2. 改造 四.最小化.最大化.关闭 1. 要点 2. 改造 ...
- WPF 自定义窗口在扩展屏的最大化
很多应用需要定制化窗口,而窗口定制化不能绕过的一个问题是标题栏定制化. 基于wpf的窗口程序,一般会通过透明,去边框化的方式将原有的标题栏遮挡. 默认情况下,wpf 窗口的标题栏是这样的, 这时最化小 ...
- 《C语言到底能干什么》1.5 在窗口上写上“Hello World”(高手莫看)
1.5 在窗口上写上"Hello World" 再次声明:高手莫看,浪费时间 这一节我们乘胜追击,来继续深入学习下,学习窗口处理时间的东东. 也许你以前听说过,windows系统是 ...
- C++ 主程序中打开子程序窗口隐藏,操作控件 遍历窗口控件句柄EnumChildWindows();获取其他程序进度条数据 操作选择框 按钮点击
1.线程启动子程序 ShowWindow(hWnd, SW_SHOW)显示 ShowWindow(hwnd, SW_HIDE);隐藏 system_hide(L"Odin3.exe&quo ...
- 计算机窗口是什么意思解释,Windows电脑窗口是什么?关于电脑窗口的一些基础知识...
现在,很多的操作系统都是视窗操作系统,比如:Windows.linux.iOS等.这些系统都是由一个个窗口组成的?那么,什么是窗口呢?举个简单的例子,比如双击我的电脑之后,就打开了一个窗口,如下图所示 ...
- python 窗口最小化_如何让tkinter窗口最小化
GUI编程,代码可以控制程序窗口的最大化,或者全屏显示,也可以控制窗口的最小化.本文介绍如何实现tkinter窗口的最小化,这一文写完,同学们对窗口的最大化,最小化,全屏,就都可以实现代码级的操控了. ...
- PyQt5窗口最小化后,任务栏窗口预览(Windows速览)持续刷新(C++ Qt同理)
PyQt5 / Qt窗口最小化后,鼠标悬停,任务栏窗口预览(Windows速览)继续保持刷新状态 问题描述 解决方案 完整代码 问题描述 最近在做一个PyQt5项目,其中有一个功能是窗口启动后开始计时 ...
- wps里表格中间的字怎么置顶_如何让wps保持窗口最前_怎么把wps窗口置顶
2020-03-04 15:40:25 wps是一款办公软件套装,可以实现办公软件最常用的文字.表格.演示等多种功能.win10系统打开编辑想让wps窗口置顶,也就是显示在其它窗口前面,这样能第一时间 ...
最新文章
- 2.SDL游戏开发:把代码写长一点(一)
- 2020 最新 JVM 生态报告
- C++ 中使用 goto 编译通不过
- php框架中uri路由机制,URI 路由 — CodeIgniter 3.1.5 中文手册|用户手册|用户指南|中文文档...
- 使用webpack打包ES6代码
- opencv图片分类+特征图片截取
- cad的lisp程序大集合_大数据成神之路-Java高级特性增强(CopyOnWriteArraySet)
- mysql5.7忘记root密码解决方法_MySQL5.7忘记root密码处理
- oracle 01157,Oracle数据库启动时出现ORA-01157和ORA-01110问题
- c#位图转换未矢量图_PS基础:像素与分辨率,位图与矢量图
- windows10环境下curl 安装与配置
- 4999以内阿拉伯数字转罗马字符
- 国内使用cousera
- OTU/ASV/Feature tabel 表格 过滤 相对丰度 微生物
- 在图3-30 中,某学院的以太网交换机有三个接口分别和学院三个系的以太网相连,另外三个接口分别和电子邮件服务器、万维网服务器以及一个连接互联网的路由器相连。图中的A,B和C都是100Mbit/s以太网
- Linux服务之DHCP服务篇(scp)
- Long tailed 长尾分布论文汇总
- 计算机专业英语电池,电池分为哪几种?英文缩写?
- 状态栏QStatusBar
- 判断身份证号码的正确性源码
热门文章
- vs2010括号不成对_C++ VS2010 括号匹配 求强人解答
- foreach循环符合就不往下走了_Java基础入门篇——For循环
- linux 读取 gateway ip socket,linux下获取本地IP信息(没看代码)
- mysql事务会不会上锁_MySQL事务以及加锁机制
- selenium使用TestNG实现DDT
- 2014计算机二级c语言试题及答案,2014计算机二级C语言测试题及答案解析六之二...
- 大数据项目开发案例_大数据开发相关术语解析
- 用python批量下载网络图片_python批量下载图片的三种方法
- 顺序栈的基本操作c语言源代码,顺序栈的栈基本操作(C语言版)
- vue中如何在方法中动态的删除集合中的元素!?