MFC 设置指定显示器的分辨率
1、首先使用vs2013创建一个MFC的示例工程,如下图所示,VS2013的工程创建向导可以简单的创建


2、然后我们先来了解一下如何获取屏幕分辨率的接口,如下图所示,在msdn上找到这个接口,通过这个来获取屏幕原来的分辨率



3、然后我们再来了解一下如何设置屏幕分辨率的接口,如下图所示,在msdn上找到这个接口,通过这个来设置屏幕的分辨率

4、关于设置分辨率的参数如何设置,请参考下图的结构体的变量的注释,如下图所示,将这些变量的注释了解一下


5、如下图所示,在程序的源文件中,加上如下代码就可以设置屏幕的分辨率了,非常简单

6、将下面的示例代码放到一个按钮的点击事件就可以了,参考代码如下:
int Width = GetSystemMetrics(SM_CXSCREEN);
int Height = GetSystemMetrics(SM_CYSCREEN);
DEVMODE lpDevMode0;
lpDevMode0.dmBitsPerPel = 32;
lpDevMode0.dmPelsWidth = Width;
lpDevMode0.dmPelsHeight = Height;
lpDevMode0.dmSize = sizeof(lpDevMode0);
lpDevMode0.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
DEVMODE lpDevMode;
lpDevMode.dmBitsPerPel = 32;
lpDevMode.dmPelsWidth = 1366;
lpDevMode.dmPelsHeight = 768;
lpDevMode.dmSize = sizeof(lpDevMode);
lpDevMode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
LONG result;
result = ChangeDisplaySettings(&lpDevMode, 0);
if (result == DISP_CHANGE_SUCCESSFUL)
{
ChangeDisplaySettings(&lpDevMode, CDS_UPDATEREGISTRY);
}
else
{
ChangeDisplaySettings(NULL, 0);
}

