OpenGL 编程实践 之 改变屏幕分辨率和颜色深度
2010-10-10 20:27
429 查看
程序运行的结果是改变屏幕的分辨率和颜色深度。
一、程序的编写:
1. 新建和配置工程
新建一个工程,然后在Project->Setting->Link 中,加入OpenGL 相关几个lib文件
2. 加入头文件
3. 改变分辨率函数的实现
4. 调用函数
在程序能执行到任意位置调用 上述函数即可
如:
5. 运行程序
二、 程序说明
1. DEVMODE 结构体
dmFields 指示DEVMODE结构体中的某个域有没有被初始化
这个结构体包含一个打印机或显示设备的初始化数据和环境信息。
2.EnumDisplaySettings函数
这个函数是获取某一个显示设备的图形模式信息
如果第一个参数为空,则表示获取的是当前进程正在用的显示设备
第三个参数是out类型,它返回当前显示设备的信息
3.ChangeDisplaySetting函数
把默认显示器的显示设置改成指定的图形模式
一、程序的编写:
1. 新建和配置工程
新建一个工程,然后在Project->Setting->Link 中,加入OpenGL 相关几个lib文件
OpenGL32.lib Glu32.lib GLaux.lib
2. 加入头文件
#include <windows.h> #include <GL/gl.h> //OpenGL 核心函数库文件的头文件 #include <GL/glu.h>//OpenGL 应用程序函数库的头文件 #include <gl/glaux.h>//OpenGL 辅助函数库的头文件 #include <stdio.h> //标准输入输出 #include <io.h> //输入输出
3. 改变分辨率函数的实现
bool ChangeResolution(int w,int h,int bitdepth) { DEVMODE devMode; int modeSwitch; int closeMode = 0; EnumDisplaySettings(NULL,closeMode,&devMode); //获取指定显示设备的图形模式的信息 devMode.dmBitsPerPel = bitdepth; devMode.dmPelsWidth = w; devMode.dmPelsHeight = h; devMode.dmFields = DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT; modeSwitch = ChangeDisplaySettings(&devMode,CDS_FULLSCREEN); if(modeSwitch == DISP_CHANGE_SUCCESSFUL){ return true; } else{ ChangeDisplaySettings(NULL,0); return FALSE; } }
4. 调用函数
在程序能执行到任意位置调用 上述函数即可
如:
ChangeResolution(640,480,16);
5. 运行程序
二、 程序说明
1. DEVMODE 结构体
The DEVMODE data structure contains information about the initialization and environment of a printer or a display device.
dmFields 指示DEVMODE结构体中的某个域有没有被初始化
这个结构体包含一个打印机或显示设备的初始化数据和环境信息。
2.EnumDisplaySettings函数
BOOL EnumDisplaySettings( LPCTSTR lpszDeviceName, // display device DWORD iModeNum, // graphics mode LPDEVMODE lpDevMode // graphics mode settings );
这个函数是获取某一个显示设备的图形模式信息
如果第一个参数为空,则表示获取的是当前进程正在用的显示设备
第三个参数是out类型,它返回当前显示设备的信息
3.ChangeDisplaySetting函数
LONG ChangeDisplaySettings( LPDEVMODE lpDevMode, // graphics mode DWORD dwflags // graphics mode options );
把默认显示器的显示设置改成指定的图形模式
相关文章推荐
- OpenGL 编程实践 之 改变屏幕分辨率和颜色深度
- Windows API 图形界面编程——获取屏幕分辨率、DPI,更改窗口背景颜色
- 动态改变屏幕设置 分辨率、颜色等。
- 动态改变屏幕设置 分辨率、颜色等。
- VB.NET设置屏幕分辨率、颜色位数、刷新率 实例代码
- 设置屏幕分辨率、颜色位数、刷新率
- OpenGL编程(四)改变窗口大小时保持图形的原形
- Delphi 改变屏幕分辨率
- 深度学习实践指南(二)—— 符号编程
- opengl 指定清除屏幕用的颜色
- 屏幕分辨率改变导致Maximum call stack size exceeded
- 开机第二屏幕分辨率改变的几种解决方法
- 改变屏幕分辨率
- OpenGL之颜色缓冲区、深度缓冲区、模板缓冲区
- Win32 OpenGL编程(4) 2D图形基础(颜色及坐标体系进阶知识)
- Android屏幕分辨率,颜色、像素的使用(技巧)(必看)
- 在DOS环境下添加背景音乐、改变背景颜色、冻结屏幕和调用系统时间
- Android学习实践:4.让Activity全屏及改变文字和背景颜色
- 在VC中设置屏幕分辨率和颜色质量
- 在屏幕中间显示,按ESC键后改变字符的颜色