全屏幕OpenGL程序

阿阿小瑞

阿阿小瑞

2016-02-19 15:34

今天图老师小编给大家展示的是全屏幕OpenGL程序,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!

  其实在BCB中实现全屏幕OpenGL的原理是很简单的,只要在窗口OpenGL程序的基础上做一个小小的改动即可:只要将窗口属性修改为WS_POPUP就可以了。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  具体如下:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  在窗口类的CreateParam()成员函数中加入如下语句:

  Params.Style=WS_POPUP|WS_CLIPCHILDREN|WS_CLIPSIBLINGS;

  将相应窗口修改成WS_POPUP型窗口,另两个是为支持OpenGL为设的。

  仍在窗口类的CreateParam()成员函数,加入如下语句:

  ChangeResolution(800,600);

  Params.Width=800;

  Params.Height=600;

  Params.X=Params.Y=0;

  第一句将屏幕分辨率设定为800X600(可以是显示卡支持的任意值)

  然后修改窗体大小使之占满全屏。

  ChangeResolution()是一个自编的小函数,其原理如下:

  用WINAPI:EnumDisplaySettings()查询并取得所需的显示模式

  用WINAPI:ChangeDisplaySettings()修改显示模式。

  ChangeResolution()的完整代码:

  

BOOL ChangeResolution(DWORD w, DWORD h) {
DEVMODE devMode;
LONG modeSwitch;
LONG i;
CHAR buf[256];
i = 0;
do {
modeSwitch = EnumDisplaySettings(NULL, i, &devMode);
i++;
} while(( (devMode.dmBitsPerPel!=16)
||(devMode.dmPelsWidth != w)
||(devMode.dmPelsHeight != h) )
&& (modeSwitch) );
/* Okay see if we found a mode */
if (!modeSwitch) { }
else {
modeSwitch = ChangeDisplaySettings(&devMode, 0);
if (modeSwitch!=DISP_CHANGE_SUCCESSFUL)
{
//Might be running in Windows95, let's try without the hertz change
devMode.dmBitsPerPel = 16;
devMode.dmPelsWidth = w;
devMode.dmPelsHeight = h;
devMode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
modeSwitch = ChangeDisplaySettings(&devMode, 0);
}
}
return TRUE;
}

  样本程序

  说明:通常这个程序运行时会看到屏幕底部有道白线,这是任务栏造成的,如果你将它的总在最前面(always on top)去掉或者将本程序窗口作成Always On Top型就不会再看到它了。

展开更多 50%)
分享

猜你喜欢

全屏幕OpenGL程序

编程语言 网络编程
全屏幕OpenGL程序

全屏幕模拟时钟的C源程序

编程语言 网络编程
全屏幕模拟时钟的C源程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Java使用全屏幕模式

Java JAVA基础
Java使用全屏幕模式

PowerPoint2018播放时如何全屏显示铺满全屏幕

电脑网络
PowerPoint2018播放时如何全屏显示铺满全屏幕

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

PowerPoint2010播放时如何全屏显示铺满全屏幕

电脑入门
PowerPoint2010播放时如何全屏显示铺满全屏幕

全屏幕编辑软件的编写(C语言)01

编程语言 网络编程
全屏幕编辑软件的编写(C语言)01

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

BorderLayout的简介

BorderLayout的简介

Tomcat 下使用itext生成报表

Tomcat 下使用itext生成报表
下拉加载更多内容 ↓