Список рабочих столов привязан к разрешению экрана. Понятно, что на мониторе 1600х1200 окошки можно разместить совсем по другому, чем на 800х600. Из-за маниакального стремления сэкономить одно (!) поле, вместо количества пикселов по горизонтали и вертикали, мы храним одно число — их произведение.
function GetScreenRes: Integer;
var
DC: HDC;
begin
DC := GetDC(0);
try
Result := GetDeviceCaps(DC, HORZRES)
* GetDeviceCaps(DC, VERTRES);
finally
ReleaseDC(0, DC);
end;
end;
Проблема в том, что некоторые разрешения дают одинаковое произведение на выходе, а ведь изначально так просто было решить эту проблему:
...
Result := GetDeviceCaps(DC, HORZRES) * 100000
+ GetDeviceCaps(DC, VERTRES);
...
Комментариев нет:
Отправить комментарий