在屏幕上 鼠标右键-->属性-->设置 这里可以调整屏幕分辨率.
但是分辨率是不能随意设置的,只能设置滑动块对应的分辨率.即使用
DEVMODE DevMode; //屏幕信息结构体
EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&DevMode); //获取当前的数据
DevMode.dmPelsWidth = m_cx; //修改成你想要的分辨率
DevMode.dmPelsHeight = m_cy;
if(DISP_CHANGE_SUCCESSFUL!=ChangeDisplaySettings(&DevMode, CDS_UPDATEREGISTRY)) //设置生效
{
OutputDebugString(TEXT("失败"));
}
这样也只能指定 m_cx,m_cy为特定的值,而不能是随意值, 比如800 X 600 而不能设置成 800 X 700.所以问题就来了.
那些特定的值是怎么来的,是人为指定的,是系统生成的?
怎么用程序去获得这些值,形成一个"合法"分辨率列表,让用户选择,就好像移动滑块选择分辨率一样.
但是分辨率是不能随意设置的,只能设置滑动块对应的分辨率.即使用
DEVMODE DevMode; //屏幕信息结构体
EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&DevMode); //获取当前的数据
DevMode.dmPelsWidth = m_cx; //修改成你想要的分辨率
DevMode.dmPelsHeight = m_cy;
if(DISP_CHANGE_SUCCESSFUL!=ChangeDisplaySettings(&DevMode, CDS_UPDATEREGISTRY)) //设置生效
{
OutputDebugString(TEXT("失败"));
}
这样也只能指定 m_cx,m_cy为特定的值,而不能是随意值, 比如800 X 600 而不能设置成 800 X 700.所以问题就来了.
那些特定的值是怎么来的,是人为指定的,是系统生成的?
怎么用程序去获得这些值,形成一个"合法"分辨率列表,让用户选择,就好像移动滑块选择分辨率一样.
解决方案 »
- vc中,钩子的回调函数的参数WPARAM和LPARAM的问题__听着有点绕嘴^
- 怎样判断系统是否正在关机中注销中......
- 请问高手:VC.NET 和 VC6.0到底有什么区别啊?》
- 请教加密文件的类(输入源文件名和目的文件和key)VC可用
- 怎样计算出这个对话框最大化时,客户区的高度
- 混合编程,救命呀!在线等候,高分哟。
- 请问什么是脚本语言,它与普通的语言如c,c++有什么区别
- 怎样删除注册表的内容?
- 用CTreeView,怎么在支点上点击时,使它能运行某段函数程序(最好是能运行另一视图中的代码,文档的代码也行)
- OVERLAPPED.hEvent是否需要CreateEvent()?
- vc做dll如何回调VB传入的函数
- 怎么在CEDITVIEW类单文档中输出自定义的内容。
int i=-1;
BOOL Result=EnumDisplaySettings(NULL,i,&DevMode); //-1是当前设置
CString Str;
while(Result)
{
Str.Format(TEXT("%04d*%04d*%02d位色"),DevMode.dmPelsWidth,
DevMode.dmPelsHeight,DevMode.dmBitsPerPel);
OutputDebugString(Str);
Result=EnumDisplaySettings(NULL,++i,&DevMode);
}