C找出显卡支持的分辨率
发布时间:2020-12-16 03:09:42 所属栏目:百科 来源:网络整理
导读:我正在编写一个小程序让我切换我的分辨率,因为我的投影机无法处理与我的屏幕相同的分辨率.我已经知道如何使用 Windows API设置屏幕分辨率.以及使用Windows API或QT4工具包读取当前的分辨率.我的问题是我想要一个菜单??的所有不同的分辨率支持的屏幕和显卡.这
我正在编写一个小程序让我切换我的分辨率,因为我的投影机无法处理与我的屏幕相同的分辨率.我已经知道如何使用
Windows API设置屏幕分辨率.以及使用Windows API或QT4工具包读取当前的分辨率.我的问题是我想要一个菜单??的所有不同的分辨率支持的屏幕和显卡.这个程序将被分发,所以我需要程序实际上与图形卡通信,以找出它支持什么.我想使用的唯一的API是Windows API或QT4工具包,但我不认为QT4会这样做,除非您以奇怪的方式使用图形部件.
我很确定这是可能与WINDOWS API.我只是不知道该怎么做. 哦,请给我一些松懈,我熟悉QT4和C,但我通常是一个Linux程序员,我正在写给别人.我用Windows API做的唯一的事情就是做一个消息框,设置背景,并使用系统变量.所以请简单说明一下这个过程.请不要只是发布到msdn的链接,我讨厌他们的文档,我讨厌微软.我每年使用Windows也许两次. 解决方法
在一般情况下,以下内容可能适用于您
DEVMODE dm = { 0 }; dm.dmSize = sizeof(dm); for( int iModeNum = 0; EnumDisplaySettings( NULL,iModeNum,&dm ) != 0; iModeNum++ ) { cout << "Mode #" << iModeNum << " = " << dm.dmPelsWidth << "x" << dm.dmPelsHeight << endl; } 这应该打印出运行.exe的当前显示的所有支持的分辨率.假设你没有处理多显示图形卡,这应该是正常的.否则,您必须在每个显示器上使用EnumDisplayDevices循环. 一旦找出你想要的分辨率,你可以使用’ChangeDisplaySettingsEx’来将显示改变为所需的模式. 使用DirectX是可能的,但我不会推荐它,因为代码更复杂(必须初始化DirectX和使用COM指针),除非您打算实际使用DirectX不仅仅是确定显示分辨率. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |