关于获取分辨率集合问题
本帖最后由 梦幻羽羽 于 2015-2-2 16:35 编辑在写游戏控制面板时候,遇到一个问题,我获取显卡/显示器支持的所有分辨率,但是一直苦恼于筛选显卡/显示器支持的分辨率
test.c程序
RUN结果:得到的分辨率集合,但是最小分辨率是600x480
而实际上通过window分辨率查看系统支持的分辨率最低是:800x600
所有如何对获取的分辨率列表进行是否支持的筛选
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:47 编辑
这里有个分辨率调整工具,不知道是否有用。 只爱陌生猴 发表于 2015-2-3 08:45
这里有个分辨率调整工具,不知道是否有用。
我希望不是MFC 也不是其他版本,而是C调用API版本 梦幻羽羽 发表于 2015-2-6 01:30
我希望不是MFC 也不是其他版本,而是C调用API版本
了解。
页:
[1]