Hi Tom,
ja,
ja.
Wo du den Code für den Rahmen unter bringst ist eigentlich egal. In der "IF CornerUse" -Anweisung ist es wohl am passensten. Und ja, auf den Canvas zeichnen. Entweder durch eine Canvas- oder Win-
API-Methode.
Noch mal Zum Verständnis. Du kannst zeichnen soviel du willst und was du willst. Zuerst ist alles unsichtbar, und jede Region die du mit RGN_OR kombinierst wird sichtbar. Bei dir ist das jetzt so, dass du eine Region als Rechteck mit abgerundeten Ecken in den von dir vorgegebenen Dimensionen creierst und durch die kombination mit deinem FullRgn sichtbar machst. Somit ist also alles innerhalb dieser Region sichtbar, und alles was du in diesen Bereich zeichnest auch.
Zeichne also einen Rahmen mit abgerundeten Ecken innerhalb deiner Region und alles müsste klappen.
Mit CreateRoundRectRgn habe ich leider auch keine Erfahrungen. Die
Win32-Hilfe sagt dazu aber folgendes:
Zitat:
The CreateRoundRectRgn function creates a rectangular region with rounded corners.
HRGN CreateRoundRectRgn(
int nLeftRect, // x-coordinate of the region's upper-left corner
int nTopRect, // y-coordinate of the region's upper-left corner
int nRightRect, // x-coordinate of the region's lower-right corner
int nBottomRect, // y-coordinate of the region's lower-right corner
int nWidthEllipse, // height of ellipse for rounded corners
int nHeightEllipse // width of ellipse for rounded corners
);
Parameters
nLeftRect
Specifies the x-coordinate of the upper-left corner of the region.
nTopRect
Specifies the y-coordinate of the upper-left corner of the region.
nRightRect
Specifies the x-coordinate of the lower-right corner of the region.
nBottomRect
Specifies the y-coordinate of the lower-right corner of the region.
nWidthEllipse
Specifies the width of the ellipse used to create the rounded corners.
nHeightEllipse
Specifies the height of the ellipse used to create the rounded corners.
Damit müsste alles klar sein.
Gruß oki