BOOL bResult=EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &OldDevMode);
///是否需要更改分辨率/////////////////
int nFullWidth=OldDevMode.dmPelsWidth;
int nFullHeight=OldDevMode.dmPelsHeight;
bChanged=0;
if(nFullWidth!=1024 || nFullHeight!=768)//change to 1024*768;
{
DEVMODE lpDevMode;
lpDevMode.dmBitsPerPel=16;//Change from 24 to 16
lpDevMode.dmPelsWidth=1024;
lpDevMode.dmPelsHeight=768;
lpDevMode.dmDisplayFrequency=75;
lpDevMode.dmSize=sizeof(DEVMODE);
lpDevMode.dmFields =DM_PELSWIDTH|DM_PELSHEIGHT|DM_BITSPERPEL|DM_DISPLAYFREQUENCY;
LONG result;
//EnumDisplaySettings(NULL,ENUM_REGISTRY_SETTINGS,&lpDevMode);
result=ChangeDisplaySettingsEx(NULL,&lpDevMode,NULL,0,NULL);
if (result==DISP_CHANGE_SUCCESSFUL)
{
result=ChangeDisplaySettingsEx(NULL,&lpDevMode,NULL,CDS_UPDATEREGISTRY,NULL);
bChanged=1;
::UpdateWindow(::GetDesktopWindow()); }
用::UpdateWindow(::GetDesktopWindow());更新桌面也不行。
///是否需要更改分辨率/////////////////
int nFullWidth=OldDevMode.dmPelsWidth;
int nFullHeight=OldDevMode.dmPelsHeight;
bChanged=0;
if(nFullWidth!=1024 || nFullHeight!=768)//change to 1024*768;
{
DEVMODE lpDevMode;
lpDevMode.dmBitsPerPel=16;//Change from 24 to 16
lpDevMode.dmPelsWidth=1024;
lpDevMode.dmPelsHeight=768;
lpDevMode.dmDisplayFrequency=75;
lpDevMode.dmSize=sizeof(DEVMODE);
lpDevMode.dmFields =DM_PELSWIDTH|DM_PELSHEIGHT|DM_BITSPERPEL|DM_DISPLAYFREQUENCY;
LONG result;
//EnumDisplaySettings(NULL,ENUM_REGISTRY_SETTINGS,&lpDevMode);
result=ChangeDisplaySettingsEx(NULL,&lpDevMode,NULL,0,NULL);
if (result==DISP_CHANGE_SUCCESSFUL)
{
result=ChangeDisplaySettingsEx(NULL,&lpDevMode,NULL,CDS_UPDATEREGISTRY,NULL);
bChanged=1;
::UpdateWindow(::GetDesktopWindow()); }
用::UpdateWindow(::GetDesktopWindow());更新桌面也不行。
解决方案 »
- 新手学C 扫雷第一弹 《画边框》
- vc下如何提取网页文本?
- 在mfc dll中调用settimer为何失败
- 请问:在opengl中,三维场景,如何显示二维字体???????????????????????????????????????谢谢了,急,马上解决,立刻给分!
- 一千分求解,关于UNIX下的GCC和VC6自带的CL处理程序的差别问题
- c++程序调试问题,请sos
- 这是我考国家三级考试遇到的难题,该怎么做呢
- 使用过COPYDATA消息的几乎都会遇到的问题,请给点意见:)急等,谢谢
- 我现在能看懂简单的C++程序了。下一步该怎么办呢??
- 隐藏应用程序
- ON_COMMAND_EX(ID_VIEW_HISTOGRAM, OnBarCheck)做何解释?
- 请教一个简单的问题??如何理解HANDLE句柄的概念???我还是没有理解透彻
具体方法:
把result=ChangeDisplaySettingsEx(NULL,&lpDevMode,NULL,0,NULL);
if (result==DISP_CHANGE_SUCCESSFUL)
{
result=ChangeDisplaySettingsEx(NULL,&lpDevMode,NULL,CDS_UPDATEREGISTRY,NULL);
bChanged=1;
::UpdateWindow(::GetDesktopWindow()); }
直接改为:
result=ChangeDisplaySettingsEx(NULL,&lpDevMode,NULL,CDS_UPDATEREGISTRY,NULL);
bChanged=1;即可。