Witam,
mam pytanie typu why albo strange. Otóż przy zabawie z ( uczeniu się ) windows GDI przy zmianie odwzorowania za pomocą SetMapMode( hDC, MM_HIMETRIC ) niestety nie zgadzają się długości, tj. przy rysowaniu kreski o 10000 jednostek ( 10000 * 0,01 mm = 10cm ) otrzymuję odcinek 7,3 cm. Gdzie te brakujące 2,7 cm? Aczkolwiek przy odcinku długości 20cm brakuje 5,4cm, czyli 2x więcej. Mógłbym sam napisać dodatkowy przelicznik, ale czy nie ma jakiegoś wytłumaczenia? Może coś robię źle? [???]
oto fragment kodu:
int oldMapMode = SetMapMode( hDC, MM_HIMETRIC );
RECT rc;
GetClientRect( hWnd, (LPRECT)&rc);
DPtoLP( hDC, (LPPOINT)&rc, 2 );
MoveToEx( hDC, 2000, rc.top - 2000, NULL);
LineTo( hDC, 12000, rc.top - 2000);
MoveToEx( hDC, 2000, rc.top - 4000, NULL);
LineTo( hDC, 22000, rc.top - 4000);
SetMapMode( hDC, oldMapMode );