Различать панорамирование и обычные режимы экрана в коде - Windows

Я пишу полноэкранную 3D-игру, и я создал меню, в котором пользователь может выбрать разрешение экрана в соответствии с его аппаратной емкостью.

Я перечисляю все доступные режимы экрана с помощью EnumDisplaySettingsExA следующим образом:

std::vector<DEVMODEA> modes;
DEVMODEA modeInfo;
int modeNum = -1;
while (EnumDisplaySettingsExA(0, ++modeNum, &modeInfo, 0)) {
    if (modeInfo.dmBitsPerPel < 16) continue;
    modes.push_back( modeInfo );
}

Проблема в том, что я получаю панорамирование! Я не могу различить, какие именно; например, мой ноутбук ATI имеет максимальный нормальный режим 1280x800, но также содержит режим панорамирования 1024x600!

Кто-нибудь знает способ различать 2, поэтому я могу отказаться от режимов панорамирования из своего меню?

Ответ 1

@Martin: Я предполагаю, что OP просто поставил res в неправильном порядке.

Является эта ссылка о том, что вы ищете?

Похоже, это правильный способ получить размеры пикселей экрана в Windows.