Как выбрать монитор для поворота экрана функцией ChangeDisplaySettingsEx(NULL, &devMode, NULL, NULL, NULL); c++
ConsoleApplication2.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
#include <iostream>
#include <windows.h>
using namespace std;
void ShowDevMode(DEVMODE& devMode)
{
cout << "DEVMODE Settings:" << endl;
cout << " dmPelsWidth: " << devMode.dmPelsWidth << endl;
cout << " dmPelsHeight: " << devMode.dmPelsHeight << endl;
cout << " dmBitsPerPel: " << devMode.dmBitsPerPel << endl;
cout << " dmDisplayFrequency: " << devMode.dmDisplayFrequency << endl;
cout << " dmDisplayOrientation: " << devMode.dmDisplayOrientation << endl;
}
void ShowResult(long Result)
{
switch (Result)
{
case DISP_CHANGE_SUCCESSFUL:
cout << "ChangeDisplaySettingsEx returns DISP_CHANGE_SUCCESSFUL" << endl;
break;
case DISP_CHANGE_BADFLAGS:
cout << "ChangeDisplaySettingsEx returns DISP_CHANGE_BADFLAGS" << endl;
break;
case DISP_CHANGE_BADMODE:
cout << "ChangeDisplaySettingsEx returns DISP_CHANGE_BADMODE" << endl;
break;
case DISP_CHANGE_BADPARAM:
cout << "ChangeDisplaySettingsEx returns DISP_CHANGE_BADPARAM" << endl;
break;
case DISP_CHANGE_FAILED:
cout << "ChangeDisplaySettingsEx returns DISP_CHANGE_FAILED" << endl;
break;
case DISP_CHANGE_NOTUPDATED:
cout << "ChangeDisplaySettingsEx returns DISP_CHANGE_NOTUPDATED" << endl;
break;
case DISP_CHANGE_RESTART:
cout << "ChangeDisplaySettingsEx returns DISP_CHANGE_RESTART" << endl;
break;
default:
cout << "ChangeDisplaySettingsEx - Unexpected return value." << endl;
}
}
void rotate()
{
DEVMODE devMode;
long r;
// Init DEVMODE to current settings
ZeroMemory(&devMode, sizeof(DEVMODE));
devMode.dmSize = sizeof(devMode);
EnumDisplaySettingsEx(NULL, ENUM_CURRENT_SETTINGS, &devMode, NULL);
ShowDevMode(devMode);
if (devMode.dmDisplayOrientation == 0) // 0 - книжная ориентация, 1 - альбомная
{
/* Rotate Orientation - Default */
devMode.dmDisplayOrientation = 1;
}
else
{
/* Rotate Orientation - 90 */
devMode.dmDisplayOrientation = 0;
}
swap(devMode.dmPelsHeight, devMode.dmPelsWidth);
devMode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_DISPLAYORIENTATION;
r = ChangeDisplaySettingsEx(NULL, &devMode, NULL, NULL, NULL); //Применяет поворот экрана;
ShowResult(r);
// Reread current settings
ZeroMemory(&devMode, sizeof(DEVMODE));
devMode.dmSize = sizeof(devMode);
EnumDisplaySettingsEx(NULL, ENUM_CURRENT_SETTINGS, &devMode, NULL);
ShowDevMode(devMode);
}
int main(int argc, char** argv)
{
rotate();
cout << "bye";
//cin.get();
//cin.get();
return 0;
}
Как я понимаю, первый входной параметр - это устройство отображения. Я почитал про данную функцию, но у меня так и не получилось указать (выбрать) какой монитор (1й или 2й) будет менять ориентацию (книжная или альбомная).
1й параметр NULL, как понимаю, использует основной экран и меняет ориентацию (программа работает), но не получается выбрать второй экран.