梦幻羽羽 发表于 2015-2-2 16:34:05

关于获取分辨率集合问题

本帖最后由 梦幻羽羽 于 2015-2-2 16:35 编辑

在写游戏控制面板时候,遇到一个问题,我获取显卡/显示器支持的所有分辨率,但是一直苦恼于筛选显卡/显示器支持的分辨率

test.c程序
RUN结果:得到的分辨率集合,但是最小分辨率是600x480


而实际上通过window分辨率查看系统支持的分辨率最低是:800x600

所有如何对获取的分辨率列表进行是否支持的筛选


lixiaoshuai 发表于 2015-2-2 16:34:06

vc得到屏幕的当前分辨率方法:
1.Windows API调用
int width = GetSystemMetrics ( SM_CXSCREEN );
int height= GetSystemMetrics ( SM_CYSCREEN );
如果想动态自适应分辨率的变化,处理WM_DISPLAYCHANGE消息.
2.获得分辨率
BOOL EnumDisplaySettings(
LPCTSTR lpszDeviceName, // display device
DWORD iModeNum, // graphics mode
LPDEVMODE lpDevMode // graphics mode settings
);

改变分辨率
LONG ChangeDisplaySettings(
LPDEVMODE lpDevMode, // graphics mode
DWORD dwflags // graphics mode options
);
3.用GetDeviceCaps

int GetDeviceCaps(
HDC hdc, // handle to the device context
int nIndex // index of capability to query
);

只爱陌生猴 发表于 2015-2-3 08:45:48

本帖最后由 只爱陌生猴 于 2015-2-3 08:47 编辑

这里有个分辨率调整工具,不知道是否有用。

梦幻羽羽 发表于 2015-2-6 01:30:06

只爱陌生猴 发表于 2015-2-3 08:45
这里有个分辨率调整工具,不知道是否有用。

我希望不是MFC 也不是其他版本,而是C调用API版本

只爱陌生猴 发表于 2015-2-6 19:18:52

梦幻羽羽 发表于 2015-2-6 01:30
我希望不是MFC 也不是其他版本,而是C调用API版本

了解。
页: [1]
查看完整版本: 关于获取分辨率集合问题