【发布时间】:2014-07-23 22:43:53
【问题描述】:
我正在寻找一种方法来获得所有支持的分辨率。
在这里搜索一些解决方案后,我得到了这段代码:
#include "Windows.h"
#include <Windows.h>
#include <iostream>
using namespace std;
int main()
{
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;
}
int age;
cin>>age;
}
这段代码有两个问题:
运行它时,我一遍又一遍地得到相同的分辨率。 例如:Mode0、Mode1、Mode2.....Mode17都是:320x200
在使用 Gui 并查看可用分辨率时,我没有 320x200 作为选项。我看到我的电脑支持 600x800 及更高,但是在运行这个小 exe 时,我还看到 400x300、320x240 等。
有人可以帮忙和建议吗? 谢谢!
【问题讨论】:
-
不要忘记频率。
-
频率是什么意思?
-
在相同分辨率下不同模式之间可能存在合理差异的其他字段:
dmDisplayOrientation、dmDisplayFixedOutput、dmDisplayFlags
标签: c++ winapi screen-resolution