使用ChangeDisplaySettings更改方向 [英] Use ChangeDisplaySettings to change the Orientation
本文介绍了使用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屋!
查看全文