?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

樂虎lehu08手機版:全屏幕OpenGL程序

?

其其實BCB中實現全屏幕OpenGL的道理是很簡單的,只要在窗口OpenGL法度榜樣的根基上做一個小小的篡改即可:只要將窗口屬性改動為WS_POPUP就可以了。

詳細如下:

在窗口類的CreateParam()成員函數中加入如下語句:

Params.Style=WS_POPUP|WS_CLIP樂虎lehu08手機版CHILDREN|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()改動顯樂虎lehu08手機版示模式。

ChangeResolution()的完備代碼:

BOOL ChangeResolution樂虎lehu08手機版(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 {

mode樂虎lehu08手機版Switch = ChangeDisplaySettings(&devMode, 0);

if (modeSwitch!=DISP_CHANGE_SUCCESSFUL)

{

//Might be runn樂虎lehu08手機版ing 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型就不會再看到它了。

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

河北十一选五开奖的 股票行情实时查询600864 长沙站街女绿化带做生意 河南快3 3d试机号千禧试机 热火vs步行者东部决赛 长沙按摩会所电话 吉林十一选五最大遗 日本女优铃木最新性感写真 顶呱刮 幸运飞艇是正规的吗 捷报比分旧版下载 足球指数cc.7n 泷川花音喷奶的一部 火山策略 东京热全集1000 下载 麻仓优手机在线播放k8