Я использую .NET CF 2.0 на нескольких устройствах с разными возможностями отображения (в частности, цветными/монохромными), которые я хотел бы определить во время выполнения, но не могу найти какие-либо методы, обеспечивающие доступ к этой информации.
Определить глубину цвета экрана/монохромный в .NET compact framework 2.0?
Ответы (2)
P/вызовите GetDeviceCaps с COLORRES для значения nIndex.
Изменить 1
Это дает вам глубину цвета, но не фактический «цвет» по сравнению с «монохромным». Этот на самом деле нигде не предоставляется, потому что на самом деле это не важно на этом уровне.
Как правило, вы можете посмотреть на глубину цвета и сказать, что если он 8-битный или меньше, то очень, очень вероятно, что это оттенки серого. Больше, вероятно, будет цвет.
Конечно, OEM-производитель мог бы использовать 16-битный драйвер на монохромном дисплее. Нет никаких причин, по которым вы не можете этого сделать, это просто очень неэффективно и расточительно, потому что монохромное оборудование не имеет никаких проводов или приспособлений для дополнительных битов, поэтому они просто сбрасываются на пол.
Если вам нужно действительно, действительно знать, является ли он цветным или монохромным, единственный надежный способ узнать это — спросить пользователя через настройку.
Чтобы получить эту информацию, вам нужно P/вызвать GetDC() и GetDeviceCaps(). Вот ваша ссылка:
http://blogs.msdn.com/davidklinems/archive/2005/02/02/366042.aspx