手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>C/C++>列表

用VC实现动态改变Windows的显示特性

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  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
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!