Ellipse ohne Brush



  • Moin,
    ich möchte einen Kreis zeichnen mittels CDC::Ellipse. Hierbei wird der zuletzt eingestellte Brush verwendet. Wie kann ich nun aber einen Kreis zeichnen ohne Füllung?



  • // wegedit wegen bloedsinn #gg

    // hinedit
    // aus meinen QT zusammengestuetzelt

    PAINTSTRUCT ps;
    HDC hDC = BeginPaint(m_MainWindow, &ps);
    ::SetBkMode(hDC, TRANSPARENT);
    
    HPEN hPen = ::CreatePen(...);
    ::SelectObject(hDC, hPen);
    
    ::Ellipse(hDC, 10, 10, 20, 20);
    
    ::DeleteObject(hPen);
    
    EndPaint(m_MainWindow, &ps);
    


  • Hinter dem zu zeichnenden Kreis liegt ein Foto, welches im Kreisinneren weiterhin sichtbar bleiben soll.



  • Mein Kontext sieht folgendermaßen aus:

    void MMFC2dView::OnPaint(){
    	if (!m_bNoRepaint){
    		CPaintDC dc(this); 
    ...
    		dc.MoveTo(x,y);
    		dc.Ellipse(x-r, y-r, x+r,y+r );
    ...
    

    Wie kann ich nun erreichen, dass die Ellipse nicht mit gefüllt wird???



  • Genau wie ich es oben beschrieb

    void MMFC2dView::OnPaint(){
    	if (!m_bNoRepaint){
    		CPaintDC dc(this); 
    ...
    		dc.SetBkMode(TRANSPARENT)
    		dc.MoveTo(x,y);
    		dc.Ellipse(x-r, y-r, x+r,y+r );
    ...
    

    evtl musst du noch den pen per hand setzen, aber glaub ich nicht



  • Bei mir wird der Kreis weiterhin gefüllt, trotz "dc.SetBkMode(TRANSPARENT);"


Anmelden zum Antworten