Funktionreferenz


_WinAPI_DeleteObject

Beschreibung anzeigen in

Löscht einen logischen Zeichenstift, Füllmuster, Schrift, Bitmap, Region oder Palette

#include <WinAPIHObj.au3>
_WinAPI_DeleteObject ( $hObject )

Parameter

$hObject Identifiziert einen logischen Zeichenstift, Füllmuster, Schrift, Bitmap, Region oder Palette

Rückgabewert

Erfolg: True
Fehler: False

Bemerkungen

Man sollte niemals ein zu zeichnendes Objekt löschen während es im Gerätekontext ausgewählt ist.
Wenn ein Füllmuster gelöscht wird, wird die mit dem Füllmuster verbundene Bitmap nicht gelöscht.
Die Bitmap muss unabhängig davon gelöscht werden.

Verwandte Funktionen

_GDIPlus_BitmapCloneArea, _GDIPlus_BitmapCreateDIBFromBitmap, _GDIPlus_BitmapCreateFromFile, _GDIPlus_BitmapCreateFromGraphics, _GDIPlus_BitmapCreateFromHBITMAP, _GDIPlus_BitmapCreateHBITMAPFromBitmap, _GDIPlus_BitmapLockBits, _GDIPlus_BitmapUnlockBits, _ScreenCapture_Capture, _ScreenCapture_CaptureWnd, _WinAPI_CreateCompatibleBitmap, _WinAPI_CreatePen, _WinAPI_CreateRectRgn, _WinAPI_CreateRoundRectRgn

Siehe auch

Suche nach DeleteObject in der MSDN Bibliothek.

Beispiel

#include <WinAPIGdi.au3>
#include <WinAPIGdiDC.au3>
#include <WinAPIHObj.au3>
#include <WinAPISysWin.au3>
#include <WindowsConstants.au3>

If Not @Compiled Then Exit MsgBox($MB_ICONWARNING, "_WinAPI_CreatePen Beispielskript", _
        "Wenn das Skript von SciTE aus ausgeführt wird, funktioniert es nicht richtig, weil SciTE den Bildschirm aktualisiert. Daher wird das Kreuz nicht vollständig gezeichnet und verschwindet in einem Sekundenbruchteil!" & _
        @CRLF & @CRLF & "Bitte das Skript kompilieren und die Exe ausführen.")

ShowCross(@DesktopWidth / 2, @DesktopHeight / 2, 20, 2, 0xFF, 3000)

Func ShowCross($iStart_x, $iStart_y, $iLength, $iWidth, $iColor, $iTime)
    Local $hDC, $hPen, $o_Orig

    $hDC = _WinAPI_GetWindowDC(0) ; Gerätekontext (DC) des gesamten Bildschirms (Desktop)
    $hPen = _WinAPI_CreatePen($PS_SOLID, $iWidth, $iColor)
    $o_Orig = _WinAPI_SelectObject($hDC, $hPen)

    _WinAPI_DrawLine($hDC, $iStart_x - $iLength, $iStart_y, $iStart_x - 5, $iStart_y) ; Horizontal links
    _WinAPI_DrawLine($hDC, $iStart_x + $iLength, $iStart_y, $iStart_x + 5, $iStart_y) ; Horizontal rechts
    _WinAPI_DrawLine($hDC, $iStart_x, $iStart_y - $iLength, $iStart_x, $iStart_y - 5) ; Vertikal oben
    ; _WinAPI_DrawLine($hDC, $iStart_x, $iStart_y + $iLength, $iStart_x, $iStart_y + 5) ;  Vertikal unten
    _WinAPI_MoveTo($hDC, $iStart_x, $iStart_y + $iLength)
    _WinAPI_LineTo($hDC, $iStart_x, $iStart_y + 5)

    Sleep($iTime) ; Zeigt das Kreuz für die im Funktionsaufruf angegebene Zeit (in ms)

    ; Desktop neu zeichnen (lösche das Kreuz)
    _WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), 0, 0, $RDW_INVALIDATE + $RDW_ALLCHILDREN)

    ; Ressourcen freigeben
    _WinAPI_SelectObject($hDC, $o_Orig)
    _WinAPI_DeleteObject($hPen)
    _WinAPI_ReleaseDC(0, $hDC)
EndFunc   ;==>ShowCross