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());更新桌面也不行。