CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CChngDsplyMdDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CChngDsplyMdDlg::OnChagne()
{
UpdateData(TRUE);
DEVMODE lpDevMode;
lpDevMode.dmBitsPerPel = m_nBitsPerPixel;
lpDevMode.dmPelsWidth = m_nWidthPixels;
lpDevMode.dmPelsHeight = m_nHeightPixels;
lpDevMode.dmSize = sizeof(lpDevMode);
lpDevMode.dmFields = DM_PELSWIDTH|DM_PELSHEIGHT|DM_BITSPERPEL;
LONG result = ChangeDisplaySettings(&lpDevMode,0);
if(result == DISP_CHANGE_SUCCESSFUL)
{
AfxMessageBox("修改成功");
ChangeDisplaySettings(&lpDevMode,CDS_UPDATEREGISTRY);
//使用CDS_UPDATEREGISTRY表示次修改是持久的,
//并在注册表中写入了相关的数据
}
else
{
AfxMessageBox("修改失败,恢复原有设置");
ChangeDisplaySettings(NULL,0);
}
}
四、 小结
上述实例代码中对ChangeDisplaySettings()函数的返回值result没有作过多的分析,在实际操作中出于程序稳健的角度出发,可以对ChangeDisplaySettings()的返回值作出更加详细的判断,以找出修改不成功的原因。通过设置DEVMODE的dmFields成员变量,还可以对系统的刷新率特性进行设置,它的实现方法和上面几乎是一样的,相信不需要再多介绍了。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



