Zeichnen auf dem Desktop



  • Hallo kollegen,

    ich möchte direkt auf dem Desktopzeichnen(Softwareschulung)
    dazu habe ich folgenden delphi-snippet gefunden

    procedure TForm1.Button1Click(Sender: TObject);
    var
      DC: HDC; // Zeichenfläche bzw. Handle darauf
      Brush: HBRUSH; // Zwischenspeicher der Farbeinstellung
    begin
      DC := GetDC(0); // Den Haupt DC auswählen
      Brush := SelectObject(DC,GetStockObject(Black_Brush)); // Die Füllfarbe auf Schwarz stellen
      Ellipse(DC,50,50,250,250); // Eine Ellipse zeichnen
      SelectObject(DC,brush); // Füllfarbe rückgängig machen
    end;

    bekomme ihn aber nicht zum laufen bzw. in Borland c++

    Danke vielmals



  • ähm, machst du die schulung oder wirst du geschult?



  • Original erstellt von <swesi>:
    bekomme ihn aber nicht zum laufen bzw. in Borland c++

    Borland C++ != C++ Builder!!!!

    bei mir geht das snippet, aber schreib mal was dein compiler genau nicht mag.

    [ Dieser Beitrag wurde am 08.04.2003 um 13:27 Uhr von M+A+T+T editiert. ]



  • ich poste mal die C++ version von dem snippet:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      HDC DC; // Zeichenfläche bzw. Handle darauf
      HBRUSH Brush; // Zwischenspeicher der Farbeinstellung
    
      DC = GetDC(0); // Den Haupt DC auswählen
      Brush = SelectObject(DC,GetStockObject(NULL)); // Die Füllfarbe auf Schwarz stellen
      Ellipse(DC,50,50,250,250); // Eine Ellipse zeichnen
      SelectObject(DC,Brush); // Füllfarbe rückgängig machen
    }
    


  • Und ich schreib mal, wie's sauber ist 😉 :

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
       HWND hDesktop = GetDesktopWindow();  // DesktopWindow-Handle
       HDC hDC = GetDC(hDesktop); // Zeichenfläche bzw. Handle darauf
       HBRUSH hBrush; // Zwischenspeicher der Farbeinstellung
    
       hDC = GetDC(hDesktop); // Das Desktop-DC auswählen
       hBrush = SelectObject(hDC, GetStockObject(BLACK_BRUSH)); // Die Füllfarbe auf Schwarz stellen
       Ellipse(hDC, 50, 50, 250, 250); // Eine Ellipse zeichnen
       SelectObject(hDC, hBrush); // Füllfarbe rückgängig machen
       ReleaseDC(hDesktop, hDC);
    }
    

    [ Dieser Beitrag wurde am 08.04.2003 um 17:33 Uhr von WebFritzi editiert. ]


Anmelden zum Antworten