如何动态改变分辨率?
发布网友
发布时间:2022-05-17 00:35
我来回答
共1个回答
热心网友
时间:2023-09-16 18:43
改变显示分辨率
1、获取当前显示器的显示分辨率
———读取注册表HKEY_CURRENT_CONFIG\Display\Settings下的键BitsPerPixel、Resolution
———或使用如下函数
———bool GetVideoSettings(DEVMODE *devmode)
———{
——— HWND Desk=GetDesktopWindow();
——— HDC hdc=GetDC(Desk);
——— devmode->dmSize=sizeof(DEVMODE);
——— devmode->dmBitsPerpel=GetDeviceCaps(hdc,BITSPIXEL);
——— devmode->dmPelsWidth=GetSystemMetrices(SM_CXSCREEN);
——— devmode->dmPelsHeight=GetSystemMetrices(SM_SYSCREEN);
——— devmode->dmFields=DM_BITSPERPEL and DM_PELSWIDTH and DM_PELSHEIGHT;
——— return true;
——— }
2、枚举系统支持的显示分辨率
———使用系统API函数
———BOOL EnumDisplaySettings( LPCTSTR lpszDeviceName,// specifies the display device
———DWORD iModeNum, // specifies the graphics mode
———LPDEVMODE lpDevMode // points to structure to receive settings );
3、改变系统的显示分辨率
———使用系统API函数
———LONG ChangeDisplaySettings(LPDEVMODE lpDevMode, DWORD dwflags );
Flag Meaning 0 The graphics mode for the current screen will be changed dynamically.
CDS_UPDATEREGISTRY The graphics mode for the current screen will be changed dynamically and the graphics mode will be updated in the registry. The mode information is stored in the USER profile.
CDS_TEST The system tests if the requested graphics mode could be set.