EnumDisplayMonitors на конкретный видео / графический адаптер?

Я ищу перечислить все дисплеи, подключенные к конкретному видеоадаптеру. Я успешно получаю информацию о видеоадаптере и создаю HDC от этого, но когда я звоню EnumDisplayMonitors на что HDC, Ничего не произошло. EnumDisplayMonitors будет хорошо работать, если я позвоню NULL как HDC.

win32_root.cpp

for (int i = 0;; ++i) {
DISPLAY_DEVICE dd = { 0 };
dd.cb = sizeof(DISPLAY_DEVICE);

if (!EnumDisplayDevices(NULL, i, &dd, 0)) {
break;
}

if (dd.StateFlags & DISPLAY_DEVICE_ACTIVE) {
adapters.push_back(new Mage::Adapter(dd));
}
}

win32_display.cpp

Mage::Adapter::Adapter(DISPLAY_DEVICE dd)
: device(dd)
{
this->context = CreateDC(L"DISPLAY", device.DeviceName, NULL, NULL);
EnumDisplayMonitors(this->context, NULL, MonitorEnumProc, (LPARAM)&(this->displays));

В результате моя функция обратного вызова вообще не вызывается. изменения this->context в NULL Перечислим все дисплеи, прикрепленные к моему компьютеру. Кроме того, это правильно перечисляет дисплеи на адаптере, но мне особенно нужны дисплеи HMONITOR структура:

if (!EnumDisplayDevices(device.DeviceName, i, &dm, 0)) {
return;
}

Как правильно перечислить дисплеи / мониторы по конкретному DISPLAY_DEVICE?

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]