OpenGL 編程實踐 之 改變螢幕解析度和色彩深度

來源:互聯網
上載者:User

程式啟動並執行結果是改變螢幕的解析度和色彩深度。

 

一、程式的編寫:

 

1. 建立和配置工程

建立一個工程,然後在Project->Setting->Link 中,加入OpenGL 相關幾個lib檔案

OpenGL32.lib Glu32.lib GLaux.lib

2. 加入標頭檔

#include <windows.h><br />#include <GL/gl.h> //OpenGL 核心函數庫檔案的標頭檔<br />#include <GL/glu.h>//OpenGL 應用程式函數庫的標頭檔<br />#include <gl/glaux.h>//OpenGL 輔助函數庫的標頭檔<br />#include <stdio.h> //標準輸入輸出<br />#include <io.h> //輸入輸出

 

3. 改變解析度函數的實現

 

bool ChangeResolution(int w,int h,int bitdepth)<br />{<br />DEVMODE devMode;<br />int modeSwitch;<br />int closeMode = 0;</p><p>EnumDisplaySettings(NULL,closeMode,&devMode); //擷取指定顯示裝置的圖形模式的資訊</p><p>devMode.dmBitsPerPel = bitdepth;<br />devMode.dmPelsWidth = w;<br />devMode.dmPelsHeight = h;<br />devMode.dmFields = DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;</p><p>modeSwitch = ChangeDisplaySettings(&devMode,CDS_FULLSCREEN);</p><p>if(modeSwitch == DISP_CHANGE_SUCCESSFUL){<br />return true;<br />}<br />else{<br />ChangeDisplaySettings(NULL,0);<br />return FALSE;<br />}<br />}

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(<br /> LPCTSTR lpszDeviceName, // display device<br /> DWORD iModeNum, // graphics mode<br /> LPDEVMODE lpDevMode // graphics mode settings<br />);<br />

這個函數是擷取某一個顯示裝置的圖形模式資訊

如果第一個參數為空白,則表示擷取的是當前進程正在用的顯示裝置

第三個參數是out類型,它返回當前顯示裝置的資訊

 

3.ChangeDisplaySetting函數

LONG ChangeDisplaySettings(<br /> LPDEVMODE lpDevMode, // graphics mode<br /> DWORD dwflags // graphics mode options<br />);<br />

 

把預設顯示器的顯示設定改成指定的圖形模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.