当前位置: 首页>>代码示例>>C++>>正文


C++ EnumDisplaySettings函数代码示例

本文整理汇总了C++中EnumDisplaySettings函数的典型用法代码示例。如果您正苦于以下问题:C++ EnumDisplaySettings函数的具体用法?C++ EnumDisplaySettings怎么用?C++ EnumDisplaySettings使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了EnumDisplaySettings函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: GetListOfResolutions

// Search for available resolutions - TODO: Move to Common?
wxArrayString GetListOfResolutions()
{
	wxArrayString retlist;
	retlist.Add("Auto");
#ifdef _WIN32
	DWORD iModeNum = 0;
	DEVMODE dmi;
	ZeroMemory(&dmi, sizeof(dmi));
	dmi.dmSize = sizeof(dmi);
	std::vector<std::string> resos;

	while (EnumDisplaySettings(NULL, iModeNum++, &dmi) != 0)
	{
		char res[100];
		sprintf(res, "%dx%d", dmi.dmPelsWidth, dmi.dmPelsHeight);
		std::string strRes(res);
		// Only add unique resolutions
		if (std::find(resos.begin(), resos.end(), strRes) == resos.end())
		{
			resos.push_back(strRes);
			retlist.Add(StrToWxStr(res));
		}
		ZeroMemory(&dmi, sizeof(dmi));
	}
#elif defined(HAVE_XRANDR) && HAVE_XRANDR
	main_frame->m_XRRConfig->AddResolutions(retlist);
#elif defined(__APPLE__)
	CFArrayRef modes = CGDisplayCopyAllDisplayModes(CGMainDisplayID(), NULL);
	for (CFIndex i = 0; i < CFArrayGetCount(modes); i++)
	{
		std::stringstream res;
		CGDisplayModeRef mode;
		CFStringRef encoding;
		size_t w, h;
		bool is32;

		mode = (CGDisplayModeRef)CFArrayGetValueAtIndex(modes, i);
		w = CGDisplayModeGetWidth(mode);
		h = CGDisplayModeGetHeight(mode);
		encoding = CGDisplayModeCopyPixelEncoding(mode);
		is32 = CFEqual(encoding, CFSTR(IO32BitDirectPixels));
		CFRelease(encoding);

		if (!is32)
			continue;
		if (CGDisplayModeGetIOFlags(mode) & kDisplayModeStretchedFlag)
			continue;

		res << w << "x" << h;

		retlist.Add(res.str());
	}
	CFRelease(modes);
#endif
	return retlist;
}
开发者ID:DiamondLord64,项目名称:dolphin-emu,代码行数:57,代码来源:VideoConfigDiag.cpp

示例2: GetScreenMode

void Window::GetScreenMode(){
    std::cout<<"Get Screen INfo"<<std::endl;
      DEVMODE Screen;
      Screen.dmSize=sizeof(DEVMODE);
      for(int i=0;EnumDisplaySettings(NULL,i,&Screen);i++){
          //LPDWORD BitRequired=0;
          //LPDWORD StructNb;
          //EnumMonitorsW(NULL,1,NULL,0,BitRequired,StructNb);
          //LPBYTE Buffer[(long)*BitRequired];
          //EnumMonitorsW(NULL,1,*Buffer,*BitRequired,BitRequired,StructNb);
          char buff[255];
          char buff2[20];
          strcpy(buff,"Device:");
          strcat(buff,(const char*)Screen.dmDeviceName);
          std::cout<<buff<<std::endl;

          WriteToLog(buff,"DEVMOD");
          strcpy(buff,"extra bit driver:");
          sprintf(buff2,"%i",Screen.dmDriverExtra);
          strcat(buff,buff2);
          std::cout<<buff<<std::endl;
          WriteToLog(buff,"DEVMOD");

        //withd et height
          strcpy(buff,"Width/Height:");
          sprintf(buff2,"%u",Screen.dmPelsWidth);
          strcat(buff,buff2);
          strcat(buff,"/");
          sprintf(buff2,"%u",Screen.dmPelsHeight);
          strcat(buff,buff2);
          std::cout<<buff<<std::endl;
        WriteToLog(buff,"DEVMOD");

          //bit par pixel
          strcpy(buff,"Bit per pixel:");
          sprintf(buff2,"%u",Screen.dmBitsPerPel);
          strcat(buff,buff2);
          std::cout<<buff<<std::endl;
          WriteToLog(buff,"DEVMOD");

          strcpy(buff,"FramePerSecond:");
          sprintf(buff2,"%u",Screen.dmDisplayFrequency);
          strcat(buff,buff2);
          std::cout<<buff<<std::endl;
          WriteToLog(buff,"DEVMOD");

          int* Res=new int[2];
          Res[0]=Screen.dmPelsWidth;
          Res[1]=Screen.dmPelsHeight;
          ResolutionList.push_back(Res);
          FrameRateList.push_back(Screen.dmDisplayFrequency);

      }
      ResolutionList.sort(SortResolution);
      FrameRateList.sort();
}
开发者ID:Qlala,项目名称:Engine,代码行数:56,代码来源:window.cpp

示例3: memset

	int Window::GetDesktopRefreshRate() const
	{
		DEVMODE mode;
		memset(&mode, 0, sizeof(mode));
		mode.dmSize = sizeof(mode);

		if (!EnumDisplaySettings(0, ENUM_CURRENT_SETTINGS, &mode))
			return 60;
		return mode.dmDisplayFrequency;
	}
开发者ID:Mikalai,项目名称:punk_project,代码行数:10,代码来源:window_win32.cpp

示例4: getPossibleScreenModes

void getPossibleScreenModes(vector<VideoMode> &out_modes) {
	DEVMODE dm = {0};
	dm.dmSize = sizeof(dm);
	for (int iModeNum = 0; EnumDisplaySettings(NULL, iModeNum, &dm) != 0; ++iModeNum) {
		if (dm.dmBitsPerPel == 32/* || dm.dmBitsPerPel == 16*/) {
			VideoMode mode(dm.dmPelsWidth, dm.dmPelsHeight, dm.dmBitsPerPel, dm.dmDisplayFrequency);
			out_modes.push_back(mode);
		}
	}
}
开发者ID:MoLAoS,项目名称:Mandate,代码行数:10,代码来源:platform_util.cpp

示例5: deviceInfoForWidget

static DEVMODE deviceInfoForWidget(Widget* widget)
{
    DEVMODE deviceInfo;
    deviceInfo.dmSize = sizeof(DEVMODE);
    deviceInfo.dmDriverExtra = 0;
    MONITORINFOEX monitorInfo = monitorInfoForWidget(widget);
    EnumDisplaySettings(monitorInfo.szDevice, ENUM_CURRENT_SETTINGS, &deviceInfo);

    return deviceInfo;
}
开发者ID:Comcast,项目名称:WebKitForWayland,代码行数:10,代码来源:PlatformScreenWin.cpp

示例6: getrefresh

double getrefresh() {
  DEVMODE DevMode;

  DevMode.dmDriverExtra = 0;
  if (EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&DevMode)) {
    return (double)DevMode.dmDisplayFrequency;
  } else {
    return 0;
  }
}
开发者ID:Complex501,项目名称:visionegg,代码行数:10,代码来源:win32_getrefresh.c

示例7: IsResolutionSupported

BOOL Window::IsResolutionSupported(int width, int height) {
	DEVMODE mode;
	for (int i = 0; EnumDisplaySettings(0, i, &mode); i++) {
		if (ChangeDisplaySettings(&mode, CDS_TEST) == DISP_CHANGE_SUCCESSFUL)
			if (width == mode.dmPelsWidth && height == mode.dmPelsHeight) {
				return TRUE;
			}
	}
	return FALSE;
}
开发者ID:PeladoFeo,项目名称:yaPSXe,代码行数:10,代码来源:Windows.cpp

示例8: EnumDisplaySettings

VideoModeInfo DisplayWrapper::dwrapperCurrentVideoMode() {
	DEVMODE devmode;
	EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devmode);
	VideoModeInfo videoModeInfo;
	videoModeInfo.width = devmode.dmPelsWidth;
	videoModeInfo.height = devmode.dmPelsHeight;
	videoModeInfo.bpp = devmode.dmBitsPerPel;

	return videoModeInfo;
}
开发者ID:dujos,项目名称:cppqt,代码行数:10,代码来源:DisplayWrapper.cpp

示例9: EnumDisplaySettings

VideoModeInfo DisplayWrapper::dw_currentMode()
{
  DEVMODE devmode;
  EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devmode);
  VideoModeInfo mode;
  mode.width = devmode.dmPelsWidth;
  mode.height = devmode.dmPelsHeight;
  mode.bpp = devmode.dmBitsPerPel;
  return mode;
}
开发者ID:neoclust,项目名称:jag,代码行数:10,代码来源:displaywrapper.cpp

示例10: adjustWindow

void adjustWindow(WindowsDesc* winDesc)
{
	HWND hwnd = (HWND)winDesc->handle;

	if (winDesc->fullScreen)
	{
		RECT windowedRect = {};
		// Save the old window rect so we can restore it when exiting fullscreen mode.
		GetWindowRect(hwnd, &windowedRect);
		winDesc->windowedRect = { (int)windowedRect.left, (int)windowedRect.top, (int)windowedRect.right, (int)windowedRect.bottom };

		// Make the window borderless so that the client area can fill the screen.
		SetWindowLong(hwnd, GWL_STYLE, WS_SYSMENU | WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VISIBLE);

		// Get the settings of the primary display. We want the app to go into
		// fullscreen mode on the display that supports Independent Flip.
		DEVMODE devMode = {};
		devMode.dmSize = sizeof(DEVMODE);
		EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devMode);

		SetWindowPos(
			hwnd,
			HWND_TOPMOST,
			devMode.dmPosition.x,
			devMode.dmPosition.y,
			devMode.dmPosition.x + devMode.dmPelsWidth,
			devMode.dmPosition.y + devMode.dmPelsHeight,
			SWP_FRAMECHANGED | SWP_NOACTIVATE);

		ShowWindow(hwnd, SW_MAXIMIZE);
	}
	else
	{
		// Restore the window's attributes and size.
		SetWindowLong(hwnd, GWL_STYLE, WS_OVERLAPPEDWINDOW);

		SetWindowPos(
			hwnd,
			HWND_NOTOPMOST,
			winDesc->windowedRect.left,
			winDesc->windowedRect.top,
			winDesc->windowedRect.right - winDesc->windowedRect.left,
			winDesc->windowedRect.bottom - winDesc->windowedRect.top,
			SWP_FRAMECHANGED | SWP_NOACTIVATE);

		if (winDesc->maximized)
		{
			ShowWindow(hwnd, SW_MAXIMIZE);
		}
		else
		{
			ShowWindow(hwnd, SW_NORMAL);
		}
	}
}
开发者ID:VladSerhiienko,项目名称:The-Forge,代码行数:55,代码来源:WindowsBase.cpp

示例11: GLimp_GetCurrentMode

/*
** GLimp_GetCurrentMode
*/
int GLimp_GetCurrentMode( void )
{
	DEVMODE dm;
		
	memset( &dm, 0, sizeof( dm ) );
	dm.dmSize = sizeof( dm );

	EnumDisplaySettings( NULL, ENUM_CURRENT_SETTINGS, &dm );

	return VID_GetModeNum( dm.dmPelsWidth, dm.dmPelsHeight );
}
开发者ID:Racenet,项目名称:racesow,代码行数:14,代码来源:win_glw.c

示例12: changeDisplayRes

void changeDisplayRes(int displayIndex)
{
	DEVMODE dm;
   
   EnumDisplaySettings(NULL, displayIndex, &dm);
   
   if (ChangeDisplaySettings(&dm, CDS_TEST) != DISP_CHANGE_SUCCESSFUL)
   return;
   
   ChangeDisplaySettings(&dm, 0);
}
开发者ID:lowlevel86,项目名称:3d-adventure-game-engine,代码行数:11,代码来源:setDisplay.c

示例13: s_video_gdi_server_fullscreen

void s_video_gdi_server_fullscreen (void)
{
	RECT rect;
        DEVMODE settings;
	s_video_gdi_data_t *priv = (s_video_gdi_data_t *) xynth_server->driver->driver_data;
	
	if (priv->fullscreen == 0) {
                EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &priv->dmode);
                memset(&settings, 0, sizeof(DEVMODE));
                settings.dmSize = sizeof(DEVMODE);
                settings.dmBitsPerPel = priv->bpp_windows;
                settings.dmPelsWidth = xynth_server->window->surface->width;
                settings.dmPelsHeight = xynth_server->window->surface->height;
                settings.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
        } else {
                settings.dmSize = sizeof(DEVMODE);
                settings.dmBitsPerPel = priv->dmode.dmBitsPerPel;
                settings.dmPelsWidth = priv->dmode.dmPelsWidth;
                settings.dmPelsHeight = priv->dmode.dmPelsHeight;
                settings.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
        }

        switch (ChangeDisplaySettings(&settings, CDS_FULLSCREEN)) {
                case DISP_CHANGE_SUCCESSFUL:
                        break;
                case DISP_CHANGE_BADFLAGS:
                case DISP_CHANGE_BADMODE:
                case DISP_CHANGE_BADPARAM:
                case DISP_CHANGE_FAILED:
                case DISP_CHANGE_NOTUPDATED:
                case DISP_CHANGE_RESTART:
                        break;
        }

	if (priv->fullscreen == 0) {
        	rect.left = 0;
        	rect.right = xynth_server->window->surface->width;
        	rect.top = 0;
        	rect.bottom = xynth_server->window->surface->height;
                AdjustWindowRect(&rect, GetWindowLong(priv->hwndMain, GWL_STYLE), FALSE);
                SetWindowPos(priv->hwndMain, HWND_TOPMOST, rect.left, rect.top, rect.right + 100, rect.bottom + 100, 0);
                priv->fullscreen = 1;
        } else {
        	rect.left = 0;
        	rect.right = xynth_server->window->surface->width;
        	rect.top = 0;
        	rect.bottom = xynth_server->window->surface->height;
                AdjustWindowRect(&rect, GetWindowLong(priv->hwndMain, GWL_STYLE), FALSE);
                SetWindowPos(priv->hwndMain, HWND_NOTOPMOST, 0, 0, rect.right - rect.left, rect.bottom - rect.top, 0);
                priv->fullscreen = 0;
        }

	UpdateWindow(priv->hwndMain);
}
开发者ID:jetlive,项目名称:xynth,代码行数:54,代码来源:event.c

示例14: GetClientRect

void GLWindow::changeDisplaySettings()
{
	RECT screenRect = { };
	GetClientRect(GetDesktopWindow(), &screenRect);

	DEVMODE deviceMode = { };
	EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &deviceMode);
	deviceMode.dmSize = sizeof(DEVMODE);
	deviceMode.dmPelsWidth = screenRect.right;
	deviceMode.dmPelsHeight = screenRect.bottom;
	ChangeDisplaySettings(&deviceMode, CDS_FULLSCREEN);
}
开发者ID:alexgaiv,项目名称:lib3d,代码行数:12,代码来源:glwindow.cpp

示例15: swprintf_s

void CFixApp::PopulateDialog()
{
    //Populate the GUI scale combobox
    for (size_t i = 1; i < 6; i++)
    {
        wchar_t szBuf[3];
        swprintf_s(szBuf, L"x%Iu", i);
        ComboBox_AddString(m_hWndCBGUIScales, szBuf);
    }
    ComboBox_SetCurSel(m_hWndCBGUIScales, 0);

    //Populate the resolution combobox
    DEVMODE dm = {};
    dm.dmSize = sizeof(dm);
    Resolution r= {};
    for(DWORD iModeNum = 0; EnumDisplaySettings(NULL, iModeNum, &dm) != FALSE; iModeNum++)
    {
        if((dm.dmPelsWidth != r.iX || dm.dmPelsHeight != r.iY) && dm.dmBitsPerPel == 32) //Only add each res once, but don't actually check if it matches the current color depth/refresh rate
        {
            r.iX = dm.dmPelsWidth;
            r.iY = dm.dmPelsHeight;
            m_Resolutions.push_back(r);

            wchar_t szBuffer[20];
            _snwprintf_s(szBuffer, _TRUNCATE, L"%Iux%Iu", r.iX, r.iY);
            int iIndex = ComboBox_AddString(m_hWndCBResolutions, szBuffer);
            ComboBox_SetItemData(m_hWndCBResolutions, iIndex, &(m_Resolutions.back()));
        }
    }
    ComboBox_SetCurSel(m_hWndCBResolutions, 0);


    //Renderers (based on UnEngineWin.h), requires appInit() to have been called
    TArray<FRegistryObjectInfo> Classes;
    Classes.Empty();

    UObject::GetRegistryObjects( Classes, UClass::StaticClass(), URenderDevice::StaticClass(), 0 );
    for( TArray<FRegistryObjectInfo>::TIterator It(Classes); It; ++It )
    {
        FString Path = It->Object, Left, Right;
        if( Path.Split(L".",&Left,&Right)  )
        {
            const wchar_t* pszDesc = Localize(*Right,L"ClassCaption",*Left);
            assert(pszDesc);
            if(ComboBox_FindStringExact(m_hWndCBRenderers, -1, pszDesc) == CB_ERR)
            {
                ComboBox_AddString(m_hWndCBRenderers, pszDesc);
                m_Renderers.emplace_back(static_cast<wchar_t*>(Path.GetCharArray().GetData()));
            }
        }
    }

}
开发者ID:mkentie,项目名称:DeusExe,代码行数:53,代码来源:FixApp.cpp


注:本文中的EnumDisplaySettings函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。