Ich versuche, eine benutzerdefinierte CStatic
Kontrolle in vc++
zu erstellen und ein paar Probleme zu haben.CStatic Custom Control
Ursprünglich verwendete ich nur eine CStatic
Steuerung mit der SS_BLACKRECT
Art. Das war gut für die Situation, bis ich ein Bild über die Steuerung bei Bedarf anzeigen musste.
Ich habe die ganze Logistik hinter dem tatsächlichen Zeichnen des Bildes auf die Steuerung herausgefunden, aber ich kann nicht herausfinden, wie das geht, ohne andere Dinge zu stören.
Grundsätzlich möchte ich die Kontrolle als eine normale CStatic
mit der SS_BLACKRECT
Stil die meiste Zeit.
Dann muss ich in der Lage sein, eine Methode aufzurufen, die stattdessen ein Bild über das Steuerelement zeichnen wird. Ich mache die Zeichnung mit GDI
und habe es sowohl in der OnPaint()
Methode und der DrawItem()
Methode ohne Erfolg versucht. Ich kann es in der OnPaint()
zeichnen zu zeichnen, aber wenn ich die Basis anrufen CStatic::OnPaint()
zieht es über mein Bild.
Ich muss in der Lage sein zu erlauben, wie normal zu zeichnen, aber dann werfen Sie einfach ein Bild oben auf. Als ich versuchte, es in der DrawItem()
Methode zu tun, hatte ich ein Problem, weil es offensichtlich nicht mit dem SS_BLACKRECT
-Stil zeichnete, aber auf mich wartete, um die Steuerung zu zeichnen, wie es sein sollte.
Ich denke, was ich denke, dass ich suche, ist eines von drei Dingen. Eine Methode zum Zeichnen mit GDI
, nachdem die Basismethode OnPaint()
beendet wurde. Ein Weg, um das Steuerelement die Vorlage SS_BLACKRECT
Stil und dann OWNERDRAW
das Bild hinterher zu zeichnen. Oder der Code zum Nachahmen der Zeichnung von SS_BLACKRECT
.
Die letzte könnte die einfachste sein, aber ich weiß einfach nicht alle Dinge, die ich einrichten, um eine CStatic
Steuerung wie die Standard-DrawItem zu zeichnen.
Haben Sie eine Lösung gefunden? – Alan