Frage

In einer MFC-SDI-Anwendung, die eine einzelne enthält CView, übergebe ich den Kontext des Ausgabegeräts pDC->m_hDC an eine Mapping-Bibliothek, um die Karte innerhalb der zu rendern CMyView::OnDraw() Methode.

Ich möchte, dass das gerenderte Bild in der Mitte der Ansicht erscheint, umgeben von einem schwarzen Hintergrund, d. h.Die Bildgröße wäre kleiner als die CView Client-Rechteckgröße.Ich habe damit experimentiert CDC::SetViewportOrg() und legen Sie die Gerätegröße in der Zuordnungsbibliothek fest. Leider zeichnet die Zuordnungsbibliothek jedoch außerhalb der festgelegten Gerätegröße.

Wie lässt sich das Bild am besten auf die gewünschte Größe begrenzen?Sollte ich mir Clipping-Funktionen ansehen?Oder muss ich die unerwünschten Teile des Bildes manuell überzeichnen.

War es hilfreich?

Lösung

Nun, Sie können es auf zwei Arten tun.

1) Sie können SetBoundsRect auf die gewünschten Grenzen setzen.
2) Sie könnten einfach den gewünschten Bildausschnitt in den DC einfügen.

Methode 2 wäre meine bevorzugte Methode, da es keine zusätzliche Logik gibt.Es wird immer nur versucht, den Teil zu zeichnen, den Sie beschneiden :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top