ChangeDisplaySettingsEx
で無効になっているモニタを有効にしています。私はそれがロケット科学ではないと思うが、掘り下げた後はまだ不可能に見える。 hereというMicrosoftのコードサンプルに基づいて、すべてのセカンダリディスプレイを無効にする方法が見つかりました。作業には基本的な微調整だけが必要でしたが、再付着は決して働きませんでした。私は何をしようとしていたことだった。WinAPIでディスプレイデバイスを無効にする
1.初期DisplayDevice
BOOL FoundSecondaryDisp = FALSE;
DWORD DispNum = 0;
DISPLAY_DEVICE DisplayDevice;
LONG Result;
TCHAR szTemp[200];
int i = 0;
DEVMODE defaultMode;
ZeroMemory(&DisplayDevice, sizeof(DisplayDevice));
DisplayDevice.cb = sizeof(DisplayDevice);
2.すべてのデバイス
while (EnumDisplayDevices(NULL, DispNum, &DisplayDevice, 0))
{
ZeroMemory(&defaultMode, sizeof(DEVMODE));
defaultMode.dmSize = sizeof(DEVMODE);
//point 3 goes here
}
3.検出デタッチデバイスを探す
if (!(DisplayDevice.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP))
4.最終ポイント
DEVMODE DevMode;
ZeroMemory(&DevMode, sizeof(DevMode));
DevMode.dmSize = sizeof(DevMode);
DevMode.dmFields = DM_POSITION | DM_PELSWIDTH | DM_PELSHEIGHT;
DevMode.dmPelsWidth = 1920;
DevMode.dmPelsHeight = 1080;
Result = ChangeDisplaySettingsEx(DisplayDevice.DeviceName, &DevMode, NULL, CDS_UPDATEREGISTRY, NULL);
ChangeDisplaySettingsEx(NULL, NULL, NULL, NULL, NULL);
デバイスを有効にしDISP_CHANGE_FAILEDコードを返し、それが任意の表示を有効にしません。誰かに似たような経験がありましたか?
を入力いただき、ありがとうございます!モニタ**は 'ChangeDisplaySettingsEx()'で無効になっていました。私のフルテストプログラムはセカンダリディスプレイを無効にし、 'ChangeDisplaySettingsEx()'を使ってそれらを有効にしようとします。 – Artur