Tôi đang cố gắng làm theo các hướng dẫn trên MSDN given here để vô hiệu hóa màn hình phụ.Làm thế nào để vô hiệu hóa một màn hình phụ (với ChangeDisplaySettingsEx)?
Tôi đang cố gắng sử dụng cụ thể bộ chức năng này để cho phép khả năng tương thích với các phiên bản cũ hơn của Windows.
Tuy nhiên, tôi không thể quản lý tắt màn hình. Tôi đang chạy và thử nghiệm này trên Windows 7 x64. Tất cả những gì tôi nhận được là một màn hình nhấp nháy. Mã chắc chắn phát hiện màn hình đúng cách - Tôi đã quản lý để thay đổi độ phân giải và xem chế độ hiển thị của nó dễ dàng.
Dưới đây là (phần) của mã của tôi - tôi đã cố gắng rất nhiều biến thể trên các lĩnh vực cho devmode
DEVMODE deleteScreenMode;
ZeroMemory(&deleteScreenMode, sizeof(DEVMODE));
deleteScreenMode.dmSize = sizeof(DEVMODE);
deleteScreenMode.dmDriverExtra = 0;
deleteScreenMode.dmFields = DM_POSITION | DM_PELSHEIGHT | DM_PELSWIDTH;
deleteScreenMode.dmPelsWidth = 0;
deleteScreenMode.dmPelsHeight = 0;
POINTL delete;
deleteion.x=0;
deleteion.y=0;
deleteScreenMode.dmPosition = deleteion;
LONG result = ChangeDisplaySettingsEx(devName,
&deleteScreenMode,
NULL,
CDS_UPDATEREGISTRY,
NULL);
Có ai có kinh nghiệm với điều này? Cảm ơn
Theo bài viết đã đề cập, mặt nạ 'dmFields' chứa nhiều cờ hơn. Có lẽ phải được thiết lập (và các trường tương ứng zeroed) để tách màn hình? – valdo
Tôi đã thử điều đó, nó không hoạt động. Trong ví dụ của họ, họ sử dụng tất cả các cờ có thể - khi tôi làm điều đó, nó phàn nàn rằng chế độ đã cho không hợp lệ. Khi tôi xóa cờ DM_BITSPERPEL nó hoạt động, nhưng kết quả không thay đổi. Các màn hình flick và vẫn hoạt động. – Alex