Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.30;
Скачать: CL | DM;

Вниз

Неправильные размеры при рисовании через winAPI   Найти похожие ветки 

 
shu_3d   (2002-11-13 12:21) [0]

Приветствую!
Имеетяс такая вот простая проблемка, но где собака порылась, не пойму.
Имеется простенькая форма чисто для тестирования, на ней кнопка, на кнопке код:
procedure TForm1.Button1Click(Sender: TObject);
var dc:thandle;
begin
dc:=getdc(form1.handle);
setmapmode(dc,mm_lometric);
rectangle(dc,0,-0,800,-800);
end;
Рисовать-то он рисует, но вот размеры квадрата отнюдь не 8см, а чуть больше 6. Да и вообще, сколько я ни пытаюсь рисовать в mm_lometric, на экране никогда не получаю ожидаемых размеров, как правило, рисуется меньшего размера. Чего же я не понимаю?
Спасибо за помощь


 
MBo ©   (2002-11-13 12:38) [1]

Винды не видят, какого размера монитор, так что не стоит ждать от них точности.


 
Marcus   (2002-11-13 13:00) [2]

все эти MM_LOMETRIC и прочие - скорей для принтера, чем для монитора, на экране никогда не будет как на бумаге, так что прикладывать линейку к монитору смысла нет :)


 
MBo ©   (2002-11-13 13:02) [3]

p.s.
на 17"" мониторе получается более-менее точно, для своего конкретного при желании придется делать mm_Anisotropic, подобрав коэффициенты


 
shu_3d   (2002-11-13 18:49) [4]

А как же графические программы, которые например, при просмотре в масштабе 100%, дают правильные размеры изображения?
Да и сомневаюсь я, что в драйвере монитора нет информации о физическом разрешении.


 
apay ©   (2002-11-13 19:42) [5]

надо в настройках виндов установить точное кол-во DPI для монитора, станартные 96 в большинстве случаев не подходят, вот и получается опс.


 
shu_3d   (2002-11-15 12:31) [6]

А почему, например, не получить DC экрана, а потом через DeviceCaps получить разрешения экрана?
Если это работает (еще не пробовал), тогда непонятно, почему винда не может корректно настроить extent для правильного масштабирования?


 
MBo ©   (2002-11-15 12:36) [7]

getdevicecaps(getdc(0),horzsize) пробовал?
Выдает всегда 320 мм.



Страницы: 1 вся ветка

Текущий архив: 2002.12.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
1-99173
Dinara
2002-12-17 18:39
2002.12.30
Как поменять шрифт отображения у TMainMenu?


7-99388
Beginer1
2002-10-22 17:08
2002.12.30
MODEM


1-99106
Misha
2002-12-19 20:23
2002.12.30
Перегрузка операторов


3-98990
Дмитрий Орехов
2002-12-10 14:20
2002.12.30
Update Failed


1-99072
TCrash
2002-12-17 11:49
2002.12.30
FreePascal