CDC::Ellipse - transparente Füllung?
-
Hallo zusammen!
Hab' gerade 3(!) Stunden nach einer Lösung gesucht, hab aber leider nichts gefunden.
Ich möchte eine Ellipse zeichnen, jedoch _ohne_ Füllung.
CRect rcEllipse( 100,100,120,150 ); dc.Ellipse( rcEllipse );
In der MSDN steht, daß die Ellipse immer mit dem current Brush gefüllt wird.
Wie kann ich den aktuellen Brush transparent setzen ?Habs auch schon mit einem NULL-brush versucht, hat aber nicht gefunzt:
aus der MSDN:
LOGBRUSH logBrush; logBrush.lbStyle = NULL_BRUSH; logBrush.lbColor = RGB(0, 192, 192); logBrush.lbHatch = HS_CROSS; // Declare an uninitialized CBrush CBrush brush; // and initialize it with the LOGBRUSH. brush.CreateBrushIndirect(&logBrush); // Select the brush, and perhaps a pen into // the device context. CBrush* pOldBrush = (CBrush*)dc.SelectObject(&brush);
Vielen Dank im Voraus!
Liebe Grüße,
Hannes.
-
Hi,
nimm mal GetStockObject(NULL_BRUSH) um den Null-Brush zu bekommen.
-
Oder:
logBrush.lbStyle = BS_NULL;
-
Hi Trolli!
Vielen Dank!!!
Beides funktioniert!
CBrush* pOldBrush = (CBrush*)dc.SelectObject(GetStockObject(NULL_BRUSH) ); CRect rcEllipse( 100,100,120,150 ); dc.Ellipse( rcEllipse );
Wobei ja sicher die Methode mit GetStockObject die bessere/schnellere ist, da ja nicht extra ein Brush erstellt werden muß...
Wäre doch was für die FAQ, oder ?
Liebe Grüße,
Hannes.
-
Aus der MSDN
Arc
The arc is drawn using the current pen; it is not filled.
-
Hi René!
Kann sein daß der Arc nicht gefüllt wird, aber eine Ellipse ist immer gefüllt, oder ? (wenn auch mit einem NULL-brush)
Vielen Dank an alle!
Hannes.