Entwickler-Ecke

Windows API - Maßeinheiten beim Drucken


CiHead - Di 20.01.04 16:21
Titel: Maßeinheiten beim Drucken
Hallo,

wenn ich die Windows-API-Funktion SetMapMode benutze, um die Maßeinheit des Druckers auf 1/10 mm zu stellen:


Quelltext
1:
SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC);                    


... dann bekomme ich stets ein leeres Blatt ausgegeben. Wenn ich die Zeile auskommentiere klappt es, nur dass alles zu klein gedruckt wird.

Wie kann ich Millimeterangaben zum Drucken verwenden??


Delete - Di 20.01.04 16:34

Öhm, kuck mal wo der Ursprung deines Koordinatensystems liegt:
PSDK hat folgendes geschrieben:

Each logical unit is mapped to 0.1 millimeter. Positive x is to the right; positive y is up.

Unten links und nicht wie normal oben links. Eventuell ist es ja das?


CiHead - Di 20.01.04 16:42

Joa, das hatte ich auch falsch gemacht. =)

Aber obwohl ich jetzt die linke untere Ecke nehme, krieg ich nur ein weisses Blatt zu sehen...


Delete - Di 20.01.04 16:47

Ich kann mir nur vorstellen, dass deine Koordinaten nicht stimmen. Überprüf die mal im Debugger.


CiHead - Di 20.01.04 16:47

Hab's raus! Man muss die x- und y-Werte genauso angeben wie sonst auch, nur dass der y-Wert negativ sein muss, weil der Urpsrung des Koordiatensystem immernoch oben links ist, mit der negativen Achse nach unten, logisch oder? ;)