使用ChangeDisplaySettings更改方向 [英] Use ChangeDisplaySettings to change the Orientation

查看:283
本文介绍了使用ChangeDisplaySettings更改方向的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,
我正在编写一个程序来更改显示方向,但失败并显示错误代码-2(DISP_CHANGE_BADMODE),然后使用EnumDisplaySettings枚举所有设置,并发现所有显示设置''dmDisplayOrientation只是DMDO_DEFAULT ,但我认为设置应包含DMDO_90,180和270;

Hi guys,
I am writing a program to change the orientation of the display, but it failed with the error code -2(DISP_CHANGE_BADMODE), then I use the EnumDisplaySettings to enum all the settings, and find that all the display settings'' dmDisplayOrientation is just DMDO_DEFAULT, but I think the settings should contain the DMDO_90,180 and 270;

here are my codes
Scroll 15:33:42
  DISPLAY_DEVICE dspDev;
	
	vector<DISPLAY_DEVICE> vectorDSP;	
	vectorDSP.clear();
	
	for (int i = 0; i < 10; i++)
	{
		memset(&dspDev, 0 , sizeof(dspDev));
		dspDev.cb = sizeof(dspDev);
		if ( ::EnumDisplayDevices(NULL, i, &dspDev, 0) == FALSE)
		{
			break;
		}

		if ( wcscmp( (WCHAR*)dspDev.DeviceName, _T("\\\\.\\DISPLAYV1") ) != 0 &&
			wcscmp( (WCHAR*)dspDev.DeviceName, _T("\\\\.\\DISPLAYV2") ) != 0 &&
			wcscmp( (WCHAR*)dspDev.DeviceName, _T("\\\\.\\DISPLAYV3" )) != 0 )
		{
			vectorDSP.push_back(dspDev);

		}

	}
	
	
	vector<DEVMODE> VectorDevMode0;
	vector<DEVMODE> VectorDevMode90;
	vector<DEVMODE> VectorDevMode180;
	vector<DEVMODE> VectorDevMode270;

	vector<DISPLAY_DEVICE>::iterator iter = vectorDSP.begin();
	for (iter = vectorDSP.begin(); iter != vectorDSP.end(); ++iter)
	{
			
			//for (int i = 0; i < 10; i++)
			{
				DEVMODE devMod;
				devMod.dmSize = sizeof(devMod);
				int i = 0;
				while (EnumDisplaySettings(iter->DeviceName,i,&devMod) != FALSE)
				{
					//devMod = devMod;
					i++;
					if (devMod.dmDisplayOrientation == DMDO_DEFAULT)
					{
						VectorDevMode0.push_back(devMod);
					}
					else if (devMod.dmDisplayOrientation == DMDO_90)
					{
						VectorDevMode90.push_back(devMod);
					}
					else if (devMod.dmDisplayOrientation == DMDO_180)
					{
						VectorDevMode180.push_back(devMod);
					}
					else if (devMod.dmDisplayOrientation == DMDO_270)
					{
						VectorDevMode270.push_back(devMod);
					}
					memset(&devMod,0 ,sizeof(devMod));
					devMod.dmSize = sizeof(devMod);
				}
			}
			
	}

推荐答案

好,我遇到了问题,
在GFX驱动程序中,有一个开关,只有打开开关才能启用旋转,api才能正常工作,否则无法正常工作!
OK, I got the problem,
In the GFX driver, there is a switch, only turn on the switch to enable the rotate can the api work properly, if not it can''t work properly!


这篇关于使用ChangeDisplaySettings更改方向的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆