我知道用ChangeDisplaySettings改变显示模式,但是请问如何获取系统的当前显示模式(特别是刷新率)?还有请问如何判断硬件是否支持新的显示模式?

解决方案 »

  1.   

    CString strSettings;
    DEVMODE dm;
    dm.dmSize = sizeof(DEVMODE);
    EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dm); 
    strSettings.Format("%s at %dx%d %dbpp %dHz",
    dm.dmDeviceName,
    dm.dmPelsWidth,
    dm.dmPelsHeight,
    dm.dmBitsPerPel,
    dm.dmDisplayFrequency);
      

  2.   

    EnumDisplaySettings API可以获得刷新率,如楼上所示
      

  3.   

    现在已经升级了,使用这个:
    EnumDisplaySettingsEx
    The EnumDisplaySettingsEx function retrieves information about one of the graphics modes for a display device. To retrieve information for all the graphics modes for a display device, make a series of calls to this function.This function differs from EnumDisplaySettings in that there is a dwFlags parameter. BOOL EnumDisplaySettingsEx(
      LPCTSTR lpszDeviceName,  // display device
      DWORD iModeNum,          // graphics mode
      LPDEVMODE lpDevMode,      // graphics mode settings
      DWORD dwFlags            // options
    );