VC獲得顯示器的解析度、重新整理頻率等

來源:互聯網
上載者:User

 

#include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
  // TODO: Place code here.

 char   Current[100];
 DEVMODE   dm;
 dm.dmSize=sizeof(DEVMODE);
 ::EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&dm);

 
 wsprintf(Current, "%s   at   %dx%d   %dbpp   %dHz ",

  dm.dmDeviceName,
  dm.dmPelsWidth,
  dm.dmPelsHeight,
  dm.dmBitsPerPel,
  dm.dmDisplayFrequency);

 MessageBox(NULL,Current,"顯示器資訊",MB_OK);

 return 0;
}

在VC中建立win32程式,完整程式如上。

 

百度百科中EnumDisplaySettings函數介紹如下:

  函數功能:該函數得到顯示裝置的一個圖形模式裝置,通過對該函數一系列的調用可以得到顯示裝置所有的圖形模式資訊。

  函數原型:BOOL EnumDisplaySettings(LPCTSTR lpszDeviceName, DWORD iModeNum, LPDEVMODE lpDevMode);

  參數:

  lpszDeviceName:指向一個以null的結尾的字串,該字串指定了顯示裝置。此函數將獲得該顯示裝置的圖形模式資訊。該參數可以為NULL。NULL值表明調用線程正運行在電腦的當前顯示裝置上。如果lpszDeviceName為NULL,該字串的形式為\\.\displayx,其中x的值可以為1、2或3。對於Windows 95和Windows 98,lpszDeviceName必須為NULL。

  iModeNum:表明要檢索的資訊類型,該值可以是一個圖形模式索引,也可以是下列一值:

  ENUM_CURRENT_SETTINGS:檢索顯示裝置的當前設定。

  ENUM_REGISTRY_SETTINGS:檢索當前儲存在註冊表中的顯示裝置的設定。

  圖形模式索引值從零開始,要得到一個顯示裝置的所有圖形模式資訊,可以一系列地調用EnumDisplaySettings函數,並且iModeNum顯為一個非零值時,則函數返回的資訊是最近一次使用iModeNum置為零調用該函數時儲存的資訊。

  lpDevMode:DEVMODE結構的指標,該結構儲存指定圖形模式的資訊,在調用EnumDisplaySettings之前,設定dmSize為sizeof(DEVMODE),並且以位元組為單位,設定dmDriveExtra元素為接收專用驅動資料可用的附加空間。

  EnumDisplaySettings函數設定如下五個DEVMODE元素的值:dmBitsPerpel、dmPelsWidth、dmPelsHeight、dmDisplayFlags、dmDisplayFrequency。

  傳回值:如果成功,返回非零值;如果失敗,返回零。

  Windows NT:若想獲得更多錯誤資訊,請調用GetLastError函數。

  注釋:如果iModeNum大於顯示裝置最後的圖形模式索引,那麼函數就會失敗,如同在iModeNum參數中描述的那樣,使用這種方法可以枚舉顯示裝置所有的圖形模式。

  速查:Windows NT:3.51及以上版本;Windows:95及以上版本;Windows CE:不支援;標頭檔:winuser.h;庫檔案:user32.lib;Unicode:在Windows NT上實現為Unicode和ANSI兩種版本。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.