如何获得当前系统的最大分辨率。

lzjdlsl 2010-04-24 02:23:34
如题。
...全文
508 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
plumsky 2011-09-15
  • 打赏
  • 举报
回复
看下咋解决的
lzjdlsl 2010-04-26
  • 打赏
  • 举报
回复
谢谢各位。这个和硬件和驱动有关。暂时就这样把。
I_love_you_533 2010-04-26
  • 打赏
  • 举报
回复
顶起来。。。。。。
尹成 2010-04-25
  • 打赏
  • 举报
回复
友情帮顶顶
你妹的特盗不 2010-04-25
  • 打赏
  • 举报
回复
这个函数枚举到的是你的电脑里面,存储的分辨率

就是调节分辨率的那个地方的值

你获取到的值不对?你判断哪个是最大分辨率是怎么判断的啊
lzjdlsl 2010-04-25
  • 打赏
  • 举报
回复
谢谢楼上的做了详细的尝试。可是我试了我的几台epc都不对啊。改为null后也不对。显示出来的最大的既然是1024*1024.
zwfgdlc 2010-04-24
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lzjdlsl 的回复:]
谢谢楼上的。我知道如果把他赋值成0的话是获得当前的屏幕分辨率。好像只有EDS_RAWMODE和0可以赋值。
[/Quote]
可以的,我试了下我的17寸纯平,测试结果跟控制面板里的一致。

DEVMODE dm;
dm.dmSize = sizeof(DEVMODE);
FILE* fp;
int i = 0;
fopen_s(&fp, "d:\\disp.txt", "w");
while(EnumDisplaySettingsEx(NULL, i++, &dm, NULL))
{
fprintf(fp, "当前显示器支持模式:%d位色 %dX%d 刷新频率%d\n",
dm.dmBitsPerPel, dm.dmPelsWidth, dm.dmPelsHeight, dm.dmDisplayFrequency);
}
fclose(fp);

测试结果:

当前显示器支持模式:8位色 640X480 刷新频率60
当前显示器支持模式:16位色 640X480 刷新频率60
当前显示器支持模式:32位色 640X480 刷新频率60
当前显示器支持模式:8位色 320X200 刷新频率75
当前显示器支持模式:8位色 320X240 刷新频率60
当前显示器支持模式:8位色 320X240 刷新频率70
当前显示器支持模式:8位色 320X240 刷新频率72
当前显示器支持模式:8位色 320X240 刷新频率75
当前显示器支持模式:8位色 400X300 刷新频率60
当前显示器支持模式:8位色 400X300 刷新频率70
当前显示器支持模式:8位色 400X300 刷新频率72
当前显示器支持模式:8位色 400X300 刷新频率75
当前显示器支持模式:8位色 480X360 刷新频率60
当前显示器支持模式:8位色 480X360 刷新频率70
当前显示器支持模式:8位色 480X360 刷新频率72
当前显示器支持模式:8位色 480X360 刷新频率75
当前显示器支持模式:8位色 512X384 刷新频率60
当前显示器支持模式:8位色 512X384 刷新频率70
当前显示器支持模式:8位色 512X384 刷新频率72
当前显示器支持模式:8位色 512X384 刷新频率75
当前显示器支持模式:8位色 640X400 刷新频率60
当前显示器支持模式:8位色 640X400 刷新频率70
当前显示器支持模式:8位色 640X400 刷新频率72
当前显示器支持模式:8位色 640X400 刷新频率75
当前显示器支持模式:8位色 320X200 刷新频率60
当前显示器支持模式:8位色 640X480 刷新频率70
当前显示器支持模式:8位色 640X480 刷新频率72
当前显示器支持模式:8位色 640X480 刷新频率75
当前显示器支持模式:8位色 640X480 刷新频率85
当前显示器支持模式:8位色 640X480 刷新频率100
当前显示器支持模式:8位色 720X480 刷新频率60
当前显示器支持模式:8位色 720X576 刷新频率60
当前显示器支持模式:8位色 800X600 刷新频率60
当前显示器支持模式:8位色 800X600 刷新频率70
当前显示器支持模式:8位色 800X600 刷新频率72
当前显示器支持模式:8位色 800X600 刷新频率75
当前显示器支持模式:8位色 800X600 刷新频率85
当前显示器支持模式:8位色 800X600 刷新频率100
当前显示器支持模式:8位色 848X480 刷新频率60
当前显示器支持模式:8位色 848X480 刷新频率70
当前显示器支持模式:8位色 848X480 刷新频率72
当前显示器支持模式:8位色 848X480 刷新频率75
当前显示器支持模式:8位色 848X480 刷新频率85
当前显示器支持模式:8位色 848X480 刷新频率100
当前显示器支持模式:8位色 960X600 刷新频率60
当前显示器支持模式:8位色 960X600 刷新频率70
当前显示器支持模式:8位色 960X600 刷新频率72
当前显示器支持模式:8位色 960X600 刷新频率75
当前显示器支持模式:8位色 960X600 刷新频率85
当前显示器支持模式:8位色 960X600 刷新频率100
当前显示器支持模式:8位色 1024X768 刷新频率60
当前显示器支持模式:8位色 1024X768 刷新频率70
当前显示器支持模式:8位色 1024X768 刷新频率72
当前显示器支持模式:8位色 1024X768 刷新频率75
当前显示器支持模式:8位色 1024X768 刷新频率85
当前显示器支持模式:8位色 1152X864 刷新频率60
当前显示器支持模式:8位色 1152X864 刷新频率70
当前显示器支持模式:8位色 1152X864 刷新频率72
当前显示器支持模式:8位色 1152X864 刷新频率75
当前显示器支持模式:8位色 1280X720 刷新频率60
当前显示器支持模式:8位色 1280X720 刷新频率70
当前显示器支持模式:8位色 1280X720 刷新频率72
当前显示器支持模式:8位色 1280X720 刷新频率75
当前显示器支持模式:8位色 1280X720 刷新频率85
当前显示器支持模式:8位色 1280X768 刷新频率60
当前显示器支持模式:8位色 1280X768 刷新频率70
当前显示器支持模式:8位色 1280X768 刷新频率72
当前显示器支持模式:8位色 1280X768 刷新频率75
当前显示器支持模式:8位色 1280X768 刷新频率85
当前显示器支持模式:8位色 1280X800 刷新频率60
当前显示器支持模式:8位色 1280X800 刷新频率70
当前显示器支持模式:8位色 1280X800 刷新频率72
当前显示器支持模式:8位色 1280X800 刷新频率75
当前显示器支持模式:8位色 1280X800 刷新频率85
当前显示器支持模式:8位色 1280X960 刷新频率60
当前显示器支持模式:8位色 1280X960 刷新频率70
当前显示器支持模式:8位色 1280X960 刷新频率72
当前显示器支持模式:8位色 1280X1024 刷新频率60
当前显示器支持模式:16位色 320X200 刷新频率60
当前显示器支持模式:16位色 320X200 刷新频率70
当前显示器支持模式:16位色 320X200 刷新频率72
当前显示器支持模式:16位色 320X200 刷新频率75
当前显示器支持模式:16位色 320X240 刷新频率60
当前显示器支持模式:16位色 320X240 刷新频率70
当前显示器支持模式:16位色 320X240 刷新频率72
当前显示器支持模式:16位色 320X240 刷新频率75
当前显示器支持模式:16位色 400X300 刷新频率60
当前显示器支持模式:16位色 400X300 刷新频率70
当前显示器支持模式:16位色 400X300 刷新频率72
当前显示器支持模式:16位色 400X300 刷新频率75
当前显示器支持模式:16位色 480X360 刷新频率60
当前显示器支持模式:16位色 480X360 刷新频率70
当前显示器支持模式:16位色 480X360 刷新频率72
当前显示器支持模式:16位色 480X360 刷新频率75
当前显示器支持模式:16位色 512X384 刷新频率60
当前显示器支持模式:16位色 512X384 刷新频率70
当前显示器支持模式:16位色 512X384 刷新频率72
当前显示器支持模式:16位色 512X384 刷新频率75
当前显示器支持模式:16位色 640X400 刷新频率60
当前显示器支持模式:16位色 640X400 刷新频率70
当前显示器支持模式:16位色 640X400 刷新频率72
当前显示器支持模式:16位色 640X400 刷新频率75
当前显示器支持模式:8位色 320X200 刷新频率70
当前显示器支持模式:16位色 640X480 刷新频率70
当前显示器支持模式:16位色 640X480 刷新频率72
当前显示器支持模式:16位色 640X480 刷新频率75
当前显示器支持模式:16位色 640X480 刷新频率85
当前显示器支持模式:16位色 640X480 刷新频率100
当前显示器支持模式:16位色 720X480 刷新频率60
当前显示器支持模式:16位色 720X576 刷新频率60
当前显示器支持模式:16位色 800X600 刷新频率60
当前显示器支持模式:16位色 800X600 刷新频率70
当前显示器支持模式:16位色 800X600 刷新频率72
当前显示器支持模式:16位色 800X600 刷新频率75
当前显示器支持模式:16位色 800X600 刷新频率85
当前显示器支持模式:16位色 800X600 刷新频率100
当前显示器支持模式:16位色 848X480 刷新频率60
当前显示器支持模式:16位色 848X480 刷新频率70
当前显示器支持模式:16位色 848X480 刷新频率72
当前显示器支持模式:16位色 848X480 刷新频率75
当前显示器支持模式:16位色 848X480 刷新频率85
当前显示器支持模式:16位色 848X480 刷新频率100
当前显示器支持模式:16位色 960X600 刷新频率60
当前显示器支持模式:16位色 960X600 刷新频率70
当前显示器支持模式:16位色 960X600 刷新频率72
当前显示器支持模式:16位色 960X600 刷新频率75
当前显示器支持模式:16位色 960X600 刷新频率85
当前显示器支持模式:16位色 960X600 刷新频率100
当前显示器支持模式:16位色 1024X768 刷新频率60
当前显示器支持模式:16位色 1024X768 刷新频率70
当前显示器支持模式:16位色 1024X768 刷新频率72
当前显示器支持模式:16位色 1024X768 刷新频率75
当前显示器支持模式:16位色 1024X768 刷新频率85
当前显示器支持模式:16位色 1152X864 刷新频率60
当前显示器支持模式:16位色 1152X864 刷新频率70
当前显示器支持模式:16位色 1152X864 刷新频率72
当前显示器支持模式:16位色 1152X864 刷新频率75
当前显示器支持模式:16位色 1280X720 刷新频率60
当前显示器支持模式:16位色 1280X720 刷新频率70
当前显示器支持模式:16位色 1280X720 刷新频率72
当前显示器支持模式:16位色 1280X720 刷新频率75
当前显示器支持模式:16位色 1280X720 刷新频率85
当前显示器支持模式:16位色 1280X768 刷新频率60
当前显示器支持模式:16位色 1280X768 刷新频率70
当前显示器支持模式:16位色 1280X768 刷新频率72
当前显示器支持模式:16位色 1280X768 刷新频率75
当前显示器支持模式:16位色 1280X768 刷新频率85
当前显示器支持模式:16位色 1280X800 刷新频率60
当前显示器支持模式:16位色 1280X800 刷新频率70
当前显示器支持模式:16位色 1280X800 刷新频率72
当前显示器支持模式:16位色 1280X800 刷新频率75
当前显示器支持模式:16位色 1280X800 刷新频率85
当前显示器支持模式:16位色 1280X960 刷新频率60
当前显示器支持模式:16位色 1280X960 刷新频率70
当前显示器支持模式:16位色 1280X960 刷新频率72
当前显示器支持模式:16位色 1280X1024 刷新频率60
当前显示器支持模式:32位色 320X200 刷新频率60
当前显示器支持模式:32位色 320X200 刷新频率70
当前显示器支持模式:32位色 320X200 刷新频率72
当前显示器支持模式:32位色 320X200 刷新频率75
当前显示器支持模式:32位色 320X240 刷新频率60
当前显示器支持模式:32位色 320X240 刷新频率70
当前显示器支持模式:32位色 320X240 刷新频率72
当前显示器支持模式:32位色 320X240 刷新频率75
当前显示器支持模式:32位色 400X300 刷新频率60
当前显示器支持模式:32位色 400X300 刷新频率70
当前显示器支持模式:32位色 400X300 刷新频率72
当前显示器支持模式:32位色 400X300 刷新频率75
当前显示器支持模式:32位色 480X360 刷新频率60
当前显示器支持模式:32位色 480X360 刷新频率70
当前显示器支持模式:32位色 480X360 刷新频率72
当前显示器支持模式:32位色 480X360 刷新频率75
当前显示器支持模式:32位色 512X384 刷新频率60
当前显示器支持模式:32位色 512X384 刷新频率70
当前显示器支持模式:32位色 512X384 刷新频率72
当前显示器支持模式:32位色 512X384 刷新频率75
当前显示器支持模式:32位色 640X400 刷新频率60
当前显示器支持模式:32位色 640X400 刷新频率70
当前显示器支持模式:32位色 640X400 刷新频率72
当前显示器支持模式:32位色 640X400 刷新频率75
当前显示器支持模式:8位色 320X200 刷新频率72
当前显示器支持模式:32位色 640X480 刷新频率70
当前显示器支持模式:32位色 640X480 刷新频率72
当前显示器支持模式:32位色 640X480 刷新频率75
当前显示器支持模式:32位色 640X480 刷新频率85
当前显示器支持模式:32位色 640X480 刷新频率100
当前显示器支持模式:32位色 720X480 刷新频率60
当前显示器支持模式:32位色 720X576 刷新频率60
当前显示器支持模式:32位色 800X600 刷新频率60
当前显示器支持模式:32位色 800X600 刷新频率70
当前显示器支持模式:32位色 800X600 刷新频率72
当前显示器支持模式:32位色 800X600 刷新频率75
当前显示器支持模式:32位色 800X600 刷新频率85
当前显示器支持模式:32位色 800X600 刷新频率100
当前显示器支持模式:32位色 848X480 刷新频率60
当前显示器支持模式:32位色 848X480 刷新频率70
当前显示器支持模式:32位色 848X480 刷新频率72
当前显示器支持模式:32位色 848X480 刷新频率75
当前显示器支持模式:32位色 848X480 刷新频率85
当前显示器支持模式:32位色 848X480 刷新频率100
当前显示器支持模式:32位色 960X600 刷新频率60
当前显示器支持模式:32位色 960X600 刷新频率70
当前显示器支持模式:32位色 960X600 刷新频率72
当前显示器支持模式:32位色 960X600 刷新频率75
当前显示器支持模式:32位色 960X600 刷新频率85
当前显示器支持模式:32位色 960X600 刷新频率100
当前显示器支持模式:32位色 1024X768 刷新频率60
当前显示器支持模式:32位色 1024X768 刷新频率70
当前显示器支持模式:32位色 1024X768 刷新频率72
当前显示器支持模式:32位色 1024X768 刷新频率75
当前显示器支持模式:32位色 1024X768 刷新频率85
当前显示器支持模式:32位色 1152X864 刷新频率60
当前显示器支持模式:32位色 1152X864 刷新频率70
当前显示器支持模式:32位色 1152X864 刷新频率72
当前显示器支持模式:32位色 1152X864 刷新频率75
当前显示器支持模式:32位色 1280X720 刷新频率60
当前显示器支持模式:32位色 1280X720 刷新频率70
当前显示器支持模式:32位色 1280X720 刷新频率72
当前显示器支持模式:32位色 1280X720 刷新频率75
当前显示器支持模式:32位色 1280X720 刷新频率85
当前显示器支持模式:32位色 1280X768 刷新频率60
当前显示器支持模式:32位色 1280X768 刷新频率70
当前显示器支持模式:32位色 1280X768 刷新频率72
当前显示器支持模式:32位色 1280X768 刷新频率75
当前显示器支持模式:32位色 1280X768 刷新频率85
当前显示器支持模式:32位色 1280X800 刷新频率60
当前显示器支持模式:32位色 1280X800 刷新频率70
当前显示器支持模式:32位色 1280X800 刷新频率72
当前显示器支持模式:32位色 1280X800 刷新频率75
当前显示器支持模式:32位色 1280X800 刷新频率85
当前显示器支持模式:32位色 1280X960 刷新频率60
当前显示器支持模式:32位色 1280X960 刷新频率70
当前显示器支持模式:32位色 1280X960 刷新频率72
当前显示器支持模式:32位色 1280X1024 刷新频率60
当前显示器支持模式:8位色 800X600 刷新频率68
当前显示器支持模式:16位色 800X600 刷新频率68
当前显示器支持模式:32位色 800X600 刷新频率68
当前显示器支持模式:4位色 640X480 刷新频率1
当前显示器支持模式:4位色 800X600 刷新频率1
lzjdlsl 2010-04-24
  • 打赏
  • 举报
回复
谢谢楼上的。我知道如果把他赋值成0的话是获得当前的屏幕分辨率。好像只有EDS_RAWMODE和0可以赋值。
zwfgdlc 2010-04-24
  • 打赏
  • 举报
回复
EnumDisplaySettingsEx
应该可以
最后那个参数不要设为EDS_RAWMODE.

EDS_RAWMODE

If set, the function will return all graphics modes reported by the adapter driver, regardless of monitor capabilities. Otherwise, it will only return modes that are compatible with current monitors.
lzjdlsl 2010-04-24
  • 打赏
  • 举报
回复
所以我想获得的是显示器可以支持的分辨率。也就是说在点桌面右键——内容——设定值——屏幕解析度所显示的最大像素
zwfgdlc 2010-04-24
  • 打赏
  • 举报
回复
EnumDisplaySettings()

枚举的最大分辨率是显卡能支持的最大分辨率,
不是显示器可以支持的最大分辨率。
lzjdlsl 2010-04-24
  • 打赏
  • 举报
回复
看我代码就是用的EnumDisplaySettingsEx啊,
xwsn007 2010-04-24
  • 打赏
  • 举报
回复
用EnumDisplaySettingsEx试试


lzjdlsl 2010-04-24
  • 打赏
  • 举报
回复
我是用在epc上的,系统的分辨率应该和lcd板子和显卡驱动有关把。我试了几台epc显示处理的最大分辨率都和实际的在系统显示的不一样啊
cpp2017 2010-04-24
  • 打赏
  • 举报
回复
我用过的都正常1440*900
lzjdlsl 2010-04-24
  • 打赏
  • 举报
回复
用这个获得的值有的问题啊。获得的最大的hei是1536,最大的wid是2048而我系统显示的最大分辨率为1366*768啊代码如下
DISPLAY_DEVICE DispDev;
DEVMODE DevMode;
WCHAR szDevName[60];
WORD wNum = 0, wWidth = 0, wHeight = 0;
DWORD dwFlag = 0;

ZeroMemory(&DispDev, sizeof(DISPLAY_DEVICE));
ZeroMemory(&DevMode, sizeof(DEVMODE));
ZeroMemory(szDevName, sizeof(szDevName));
DispDev.cb = sizeof(DISPLAY_DEVICE);
DevMode.dmSize = sizeof(DEVMODE);
DevMode.dmDriverExtra = 0;

BOOL bRtn = FALSE;
bRtn = EnumDisplayDevices(NULL, 0, &DispDev, dwFlag);

if (bRtn) wsprintf(szDevName, L"%s", DispDev.DeviceName);
dLcdMaxHei=0;
dLcdMaxWid=0;
while (EnumDisplaySettingsEx(szDevName,
wNum++,
&DevMode, EDS_RAWMODE))
{
if(DevMode.dmPelsWidth>dLcdMaxWid)
{
dLcdMaxWid=DevMode.dmPelsWidth;
}
if (DevMode.dmPelsHeight>dLcdMaxHei)
{
dLcdMaxHei = DevMode.dmPelsHeight;
}

}
cpp2017 2010-04-24
  • 打赏
  • 举报
回复
没有直接的方法,这个EnumDisplaySettings也不麻烦.
lzjdlsl 2010-04-24
  • 打赏
  • 举报
回复
恩。我知道这个函数。可以通过enumdisplaydevices获得显示器名。然后枚举出所有的分辨率。不过有没有办法或函数不需要枚举就可以直接获得最大的显示器分辨率。谢谢。
社会栋梁 2010-04-24
  • 打赏
  • 举报
回复
Enumerating All Supported Display Settings
To enumerate all display settings supported by the current display device pass zero in the iModeNum parameter to the EnumDisplaySettings API and then continue calling it with incremented iModeNum values until the function returns zero, as shown in the following C++ code.

 int   index   =   0;   
DEVMODE dm;
// initialize the DEVMODE structure
ZeroMemory(&dm, sizeof(dm));
dm.dmSize = sizeof(dm);

while (0 != EnumDisplaySettings(NULL, index++, &dm))
{
// inspect the DEVMODE structure to obtain details
// about the display settings such as
// - Orientation
// - Width and Height
// - Frequency
// - etc.
}

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧