Genau das habe ich gemacht, überall UnitPixel genommen. Scheint wohl nicht zu stimmen.STARGÅTE hat geschrieben:ich glaube irgendwo gelesen zu haben, das man sogar bei GDI+ die Einheit angegeben kann, in der die Befehle arbeiten sollen.
Dort müsste dann alles auf Pixel und nicht auf Punkte gestellt werden.
Code: Alles auswählen
enum Unit
{
UnitWorld, // 0 -- World coordinate (non-physical unit)
UnitDisplay, // 1 -- Variable -- for PageTransform only
UnitPixel, // 2 -- Each unit is one device pixel.
UnitPoint, // 3 -- Each unit is a printer's point, or 1/72 inch.
UnitInch, // 4 -- Each unit is 1 inch.
UnitDocument, // 5 -- Each unit is 1/300 inch.
UnitMillimeter // 6 -- Each unit is 1 millimeter.
};
sondern arbeite erstmal die Grundsachen ab. Jetzt steht bei mir gerade noch nicht
Drucker an. Ist ja noch nicht fertig.
Und heute brauche ich erstmal einen Tag Pause. Gehe nebenbei noch arbeiten.

Wäre schön wenn noch paar mehr Leute mithelfen, es kommt ja dann allen zugute.
Aus MSDN:
Code: Alles auswählen
VOID Example_SetPageScale(HDC hdc)
{
Graphics graphics(hdc);
// Set the world transformation.
graphics.TranslateTransform(4.0f, 1.0f);
// Set the page transformation.
graphics.SetPageUnit(UnitMillimeter);
graphics.SetPageScale(10.0f);
Pen pen(Color(255, 0, 0, 0), 0.0f);
graphics.DrawRectangle(&pen, 0, 0, 3, 2);
}
Drucker zu zeichnen. Dann kann ich beispielsweise sagen 100 mal 100
und erhalte dann auf jedem Drucker wirklich eine Box von 10cm x 10cm.
Ansonsten muß man halt mit GetPageUnit und GetPageScale selbst umrechnen
oder mit gScale den Inhalt vom Bildschirm zum Drucker skalieren.