程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 直接在程序中更改顯示模式

直接在程序中更改顯示模式

編輯:關於C語言

 

 

    可以訪問系統注冊表HKEY_CURRENT_CONFIGDISPLAYSETINGS來獲知當

前的顯示分辨率和顏色數。

    但常用以下方法:

    關鍵的API函數是EnumDisplaySettings和ChangeDisplaySettings。前

者用來獲得當前顯示驅動所支持的所有顯示模式,而後者用來改變顯示模式。

如果有個程序改變了顯示模式, 則Windows會向所有正在運行的程序發送

WM_DISPLAYCHANGE消息。獲得當前顯示模式可以使用下面的函數,它比訪問

注冊表可靠。

Bool CVideoModes :: GetCurrentVideoSettings(DEVMODE *devmode)

{

HWND hwndDesktop=GetDesktopWindow();

HDC hdc=GetDC(hwndDesktop);

devmode -> dmSize =sizeof(DEVMODE);

devmode -> dmBitsPerPel=GetDeviceCaps(hdc,BITSPIXEL);

devmode -> dmPelsWidth=GetSystemMetrics(SM_CXSCREEN);

devmode -> dmPelsHeight=GetSystemMetrics(SM_CYSCREEN);

devmode -> dmFields=DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;

return TRUE;

}

    下面的代碼展示了如何使用EnumDisplaySettings獲得當前支持的所有顯示模式:

int modenum,done;

DEVMODE devmode;

done=0;

modenum=0;

do

    {

     done=!EnumDisplaySettings(NULL,modenum,&devmode);

     AddToList(&devmode);

     modenum++;

    }while (!done);

    設置顯示模式的方法如下:

    rc = ChangeDisplaySettings(&devmodeCDS_FULLSCREEN));這裡的devmode就

是前面使用EnumDisplaySettings獲得的。

    如果設置正常,返回值DISP_CHANGE_SUCCESSFUL。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved