Главная страница
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.012 c
3-99014
Oxy
2002-12-09 14:49
2002.12.30
Проблемы с сортировкой


14-99305
Дмитрий К.К.
2002-12-08 22:16
2002.12.30
Рональдо разыгрался


14-99300
Дремучий
2002-12-09 17:14
2002.12.30
ТРЕТЬЯ ВСТРЕЧА МАСТАКОВ В КИЕВЕ.... состоялась ли?


6-99234
alexnaro
2002-10-31 13:21
2002.12.30
Как проверить существование e-mail адреса?


1-99151
harismatik
2002-12-18 11:13
2002.12.30
Посторение дерева