VC获取并修改计算机屏幕分辨率(MFC)

本文详细介绍了如何通过编程方式调整计算机屏幕的分辨率,并强调了在修改设置时需要考虑的几个关键点,确保操作既有效又安全。文章涵盖了从获取当前分辨率到应用新的分辨率配置的全过程,包括使用`ChangeDisplaySettings`函数进行持久性更改,以及如何在修改后恢复到原始设置。
    //检测当前分辨率  
    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=1024;  
    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)  
    {  
        //MessageBox("修改成功!");  
        ChangeDisplaySettings(&lpDevMode,CDS_UPDATEREGISTRY);  
        //            //使用CDS_UPDATEREGISTRY表示次修改是持久的,  
        //            //并在注册表中写入了相关的数据  
        MessageBox("修改成功!还原");  
        if(IDOK)  
        {  
            ChangeDisplaySettings(&lpDevMode0,CDS_UPDATEREGISTRY);  
        }  
    }  
    else  
    {  
        //MessageBox("修改失败,恢复原有设置!");  
        ChangeDisplaySettings(NULL,0);  
    }  

出处:http://blog.youkuaiyun.com/nat_myron/article/details/8502009

转载于:https://www.cnblogs.com/vinsonLu/p/4670774.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值