Zeichnen auf dem Desktop
-
Hallo kollegen,
ich möchte direkt auf dem Desktopzeichnen(Softwareschulung)
dazu habe ich folgenden delphi-snippet gefundenprocedure 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. ]