Главная страница
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
1-99195
Nikolai_S
2002-12-18 15:19
2002.12.30
MapX! Кто-нибудь тесно работал с MapX? Как изменить стиль объекта


1-99172
AngeL B.
2002-12-18 17:20
2002.12.30
окна на таскбаре


1-99047
stub
2002-12-19 09:53
2002.12.30
как не дать окну проги передвигая его по раб столу не давать закр


3-99017
arnold
2002-12-11 08:58
2002.12.30
Сравнение двух DBF


1-99171
Rouse_
2002-12-15 23:32
2002.12.30
Перехват WM_LBUTTONDOWN в потомке THintWindow