Wie zu zeichnen in den nicht-Clientbereich?
Ich würde gerne in der Lage sein zu tun, einige in der Zeichnung rechts von der Menüleiste, in der nicht-Clientbereich eines Fensters.
Ist es möglich, mit C++ /MFC?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Charlie Treffer auf die Antwort mit
WM_NCPAINT
. Wenn Sie mit den MFC, der code würde wie folgt Aussehen:In der Reihenfolge zu zeichnen, in den nicht-client-Bereich zu erhalten, müssen Sie die "Fenster" DC " (statt "client" - DC), und ziehen Sie in das "Fenster" DC.
Sollten Sie versuchen, die Handhabung werden wm_ncpaint. Dies ist ähnlich zu einem normalen WM_PAINT-Nachricht, sondern befasst sich mit dem gesamten Fenster, anstatt nur den client-Bereich. Die MSDN-Dokumente werden wm_ncpaint geben Sie den folgenden Beispielcode:
Dieser code verwendet werden soll, in die message-loop von Ihrem Einsatz, die sich kanonisch organisiert eine große 'switch' - Anweisung.
Wie bereits in der MFC Beispiel von Shog, stellen Sie sicher, um die Standard-version, in diesem Beispiel wäre ein Aufruf von DefWindowProc.
Wenn Sie wollen einfach etwas in der Menü-Leiste, vielleicht ist es einfacher/sauberer fügen Sie es als rechts-ausgerichtet Menüpunkt. Auf diese Weise werde auch die Arbeit mit verschiedenen Windows-Themen, etc.