[wxWidgets]SetUserScale funktioniert entweder umgekehrt oder gar nicht
-
Hi
Ich wollte ein Bild zoomen und das wollte ich mit SetUserScale machen.wxBufferedPaintDC graphics(drawingPanel); graphics.SetPen(*wxTRANSPARENT_PEN); graphics.SetBrush(*wxGREY_BRUSH); graphics.DrawRectangle(0, 0, this->GetSize().GetWidth(), this->GetSize().GetHeight()); graphics.SetUserScale(2, 2); graphics.DrawBitmap(*Image, 0, 0);
Das Bild wird in unveränderter Größe gezeichnet. Warum wirkt das nicht auf DrawImage?
Nunja, also habe ich es mal mit Blit versucht, welches von SetUserScale ebenso unbeeindruckt war, also wollte ich direkt den MemoryDC skalieren:wxBufferedPaintDC graphics(drawingPanel); graphics.SetPen(*wxTRANSPARENT_PEN); graphics.SetBrush(*wxGREY_BRUSH); graphics.DrawRectangle(0, 0, this->GetSize().GetWidth(), this->GetSize().GetHeight()); wxMemoryDC memDC; memDC.SelectObject(*Image); memDC.SetUserScale(2, 2); graphics.Blit(0, 0, Image->GetWidth(), Image->GetHeight(), &memDC, 0, 0);
Wo die skalierung zwar funktionierte, aber umgekehrt, das Bild wird halb so groß gezeichnet und SetUserScale(0.5, 0.5) hat wieder keine Wirkung.
Was muss ich tun um das Bild korrekt skaliert zu zeichnen?
-
Ich push ja nur ungerne, aber weiß denn keiner eine Antwort?
-
Ich würde eher über wxImage Skalieren, als über den DC.
Auch scheint zur Zeit nicht alles in den DCs in wxWidgets zu funktionieren, so ging bei mir z.B. dass setzen des MapModes nicht.
phlox