麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Java > 正文

全屏幕OpenGL程序

2019-09-06 23:34:00
字體:
來源:轉載
供稿:網友

                    其實在BCB中實現全屏幕OpenGL的原理是很簡單的,只要在窗口OpenGL程序的基礎上做一個小小的改動即可:只要將窗口屬性修改為WS_POPUP就可以了。

具體如下:

在窗口類的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型就不會再看到它了。
上一篇:超星格式

下一篇:如何在BCB中使用DirectX

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产成人高清在线观看 | 亚洲一级簧片 | 狠狠干天天操 | 97久久精品一区二区三区观看 | 蜜桃视频最新网址 | 一级黄色毛片播放 | 男女隐私免费视频 | 一区二区精品视频在线观看 | 狠狠久久伊人中文字幕 | 亚洲国产精品久久久久久久久久 | 91精品国产日韩91久久久久久360 | 毛片在线播放视频 | 在线影院av | 免费观看亚洲视频 | 久国久产久精永久网页 | 久久精品视频一区 | 久久亚洲综合色 | 欧美激情猛片xxxⅹ大3 | 国产精品久久久久久模特 | 国产精品成人av片免费看最爱 | 韩毛片| 国毛片 | www.99久久久| 天堂成人国产精品一区 | 成人在线精品视频 | av最新在线| 毛片视频大全 | 亚洲一级电影在线观看 | 亚洲第一综合 | 欧美一级黄视频 | 国产妇女乱码一区二区三区 | 一级黄色大片在线观看 | 久久免费视频精品 | 视频一区二区三区视频 | 97中文| 在线观看福利网站 | 免费日韩片| 久久精品视频国产 | 男人的天堂视频网站 | 久久久精彩 | 久久凹凸 |