QQ登录

只需一步,快速开始

上位机MFC如何设置显示属性

[ 复制链接 ]
ChangeDisplaySettings可以用于设置显示属性。

上位机MFC如何设置显示属性

上位机MFC如何设置显示属性

如上图,我们可以在界面上准备三个组合框,
关联控件变量后,初始化它们
        CComboBox        m_ctrlPixels;
        CComboBox        m_ctrlDispalyFrequencry;
        CComboBox        m_ctrlBitsPerPixel;
  1.         
  2.         // TODO: Add extra initialization here
  3. m_ctrlBitsPerPixel.AddString(_T("16 位"));
  4.         m_ctrlBitsPerPixel.AddString(_T("32 位"));
  5.         m_ctrlPixels.AddString(_T("600×800 像素"));
  6.         m_ctrlPixels.AddString(_T("1024×768 像素"));
  7.         m_ctrlDispalyFrequencry.AddString(_T("60 赫兹"));
  8.         m_ctrlDispalyFrequencry.AddString(_T("75 赫兹"));

  9.         DEVMODE DevMode;

  10.         //获得显示属性
  11.         EnumDisplaySettings(NULL, ENUM_REGISTRY_SETTINGS, &DevMode);
  12.         
  13.         //颜色深度
  14.         if (DevMode.dmBitsPerPel == 16)
  15.         {
  16.                 m_ctrlBitsPerPixel.SetCurSel(0);
  17.         }
  18.         else if (DevMode.dmBitsPerPel == 32)
  19.         {
  20.                 m_ctrlBitsPerPixel.SetCurSel(1);
  21.         }
  22.         //分辨率
  23.         if ((DevMode.dmPelsWidth == 800) && (DevMode.dmPelsHeight == 600))
  24.         {
  25.                 m_ctrlPixels.SetCurSel(0);
  26.         }
  27.         else
  28.                 m_ctrlPixels.SetCurSel(1);
  29.         //刷新率
  30.         if (DevMode.dmDisplayFrequency == 60)
  31.         {
  32.                 m_ctrlDispalyFrequencry.SetCurSel(0);
  33.         }
  34.         else if (DevMode.dmDisplayFrequency == 75)
  35.         {
  36.                 m_ctrlDispalyFrequencry.SetCurSel(1);
  37.         }
复制代码
然后就可以通过按钮,调用下面 的代码,实现设置。


  1. void CGkbc8Dlg::OnTest()
  2. {
  3. DEVMODE DevMode;

  4.         //颜色深度
  5.         if (m_ctrlBitsPerPixel.GetCurSel() == 0)
  6.         {
  7.                 DevMode.dmBitsPerPel = 16;
  8.         }
  9.         else if (m_ctrlBitsPerPixel.GetCurSel() == 1)
  10.         {
  11.                 DevMode.dmBitsPerPel = 32;
  12.         }
  13.         //分辨率
  14.         if (m_ctrlPixels.GetCurSel() == 0)
  15.         {
  16.                 DevMode.dmPelsWidth = 800;
  17.                 DevMode.dmPelsHeight = 600;
  18.         }
  19.         else if (m_ctrlPixels.GetCurSel() == 1)
  20.         {
  21.                 DevMode.dmPelsWidth = 1024;
  22.                 DevMode.dmPelsHeight = 768;
  23.         }
  24.         //刷新率
  25.         if (m_ctrlDispalyFrequencry.GetCurSel() == 0)
  26.         {
  27.                 DevMode.dmDisplayFrequency = 60;
  28.         }
  29.         else if (m_ctrlDispalyFrequencry.GetCurSel() == 1)
  30.         {
  31.                 DevMode.dmDisplayFrequency = 75;
  32.         }
  33.         DevMode.dmSize = sizeof(DEVMODE);  
  34.         DevMode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT |
  35.                 DM_BITSPERPEL | DM_DISPLAYFREQUENCY;

  36.         //设置显示属性
  37.         LONG nResult =        (&DevMode, 0);
  38.         if (nResult == DISP_CHANGE_SUCCESSFUL)  
  39.         {
  40.                 //用新的设置参数更新注册表
  41.                 ChangeDisplaySettings(&DevMode, CDS_UPDATEREGISTRY);

  42.                 AfxMessageBox(_T("设置显示属性成功。"));
  43.         }
  44.         else  
  45.         {
  46.                 //恢复默认设置
  47.                 ChangeDisplaySettings(NULL, 0);
  48.                
  49.                 AfxMessageBox(_T("设置显示属性失败。"));
  50.         }
  51. }
复制代码
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:上位机MFC如何设置显示属性.rar 
文件大小:124.52 KB  售价:1金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


  

上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例

  

经历1年的编程与录制点击进入查看


  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索