Funktionreferenz


_GUICtrlListView_SetBkHBITMAP

Beschreibung anzeigen in

Legt im ListView ein Hintergrundbild basierend auf dem Bitmap-Handle fest.

#include <GuiListView.au3>
_GUICtrlListView_SetBkHBITMAP ( $hWnd, $hBitmap [, $iStyle = 0 [, $iXOffset = 0 [, $iYOffset = 0 [, $bDeleteBitmap = False]]]] )

Parameter

$hWnd Control-ID/Handle zum Control
$hBitmap Handle zu einem HBITMAP für den Hintergrund
$iStyle [optional] Legt den Stil des Hintergrundbildes fest.:
    0 - Normal
    1 - Kacheln
$iXOffset [optional] Der Wert, um den der Clientbereich des Steuerelements, auf dem das Bild angezeigt werden soll, horizontal versetzt werden soll (siehe Bemerkungen)
$iYOffset [optional] Der Wert, um den der Clientbereich des Steuerelements, auf dem das Bild angezeigt werden soll, vertikal versetzt werden soll (siehe Bemerkungen)
$bDeleteBitmap [optional] Gibt an, ob das Bitmap-Handle am Ende der Funktion gelöscht werden soll. Gültige Werte:
    True - Die Bitmap wird gelöscht, wenn die Funktion erfolgreich ist.
    False - Nicht löschen, man muss das Bitmap freigeben, wenn es nicht mehr benötigen (Standard).

Rückgabewert

Erfolg: True.
Fehler: False.

Bemerkungen

Wenn $hBitmap kein Handle ist, wird der Hintergrund des Elements gelöscht.

Wenn $iStyle = 1, dann entsprechen die Werte von $iXOffset und $iYOffset den Bildversatz relativ zur oberen linken Ecke des Clientbereichs des Elements in Prozent.
So wird beispielsweise bei 50 % die Zeichnung in der Mitte des Clientbereichs des Elements angezeigt, bei 100 % wird sie jeweils an den rechten und unteren Rand des Elements verschoben.

Wenn $iStyle = 0, dann entsprechen die Werte von $iXOffset und $iYOffset dem Versatz der ersten Kachel in Pixeln.

Verwandte Funktionen

_GUICtrlListView_SetBkImage

Siehe auch

Suche nach LVM_SETBKIMAGE in der MSDN Bibliothek.

Beispiel

Beispiel 1

#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>

Example_1() ; use UDF built listview

Func Example_1()
    Local $iLVWidth = 440, $iLVHeight = 340

    Local $hGUI = GUICreate("(UDF Created) ListView Set Background Image  (v" & @AutoItVersion & ")", 500, 400)
    GUISetBkColor(0x52F77E)

    Local $hListView = _GUICtrlListView_Create($hGUI, '', 30, 30, $iLVWidth, $iLVHeight)
    _GUICtrlListView_SetExtendedListViewStyle($hListView, $LVS_EX_FULLROWSELECT)

    ; Load images
    Local $hImage = _GUIImageList_Create()
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0xFF0000, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x00FF00, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x0000FF, 16, 16))
    _GUICtrlListView_SetImageList($hListView, $hImage, 1)

    ; Add columns
    _GUICtrlListView_InsertColumn($hListView, 0, 'Column 1', 100)
    _GUICtrlListView_InsertColumn($hListView, 1, 'Column 2', 100)
    _GUICtrlListView_InsertColumn($hListView, 2, 'Column 3', 100)

    ; Add items
    _GUICtrlListView_AddItem($hListView, 'Row 1: Col 1', 0)
    _GUICtrlListView_AddSubItem($hListView, 0, 'Row 1: Col 2', 1)
    _GUICtrlListView_AddSubItem($hListView, 0, 'Row 1: Col 3', 2)
    _GUICtrlListView_AddItem($hListView, 'Row 2: Col 1', 1)
    _GUICtrlListView_AddSubItem($hListView, 1, 'Row 2: Col 2', 1)
    _GUICtrlListView_AddItem($hListView, 'Row 3: Col 1', 2)

    ; Build groups
    _GUICtrlListView_EnableGroupView($hListView)
    _GUICtrlListView_InsertGroup($hListView, -1, 1, 'Group 1')
    _GUICtrlListView_InsertGroup($hListView, -1, 2, 'Group 2')
    _GUICtrlListView_SetItemGroupID($hListView, 0, 1)
    _GUICtrlListView_SetItemGroupID($hListView, 1, 2)
    _GUICtrlListView_SetItemGroupID($hListView, 2, 2)

    ; Creates $g_hGDIBmp - Linear gradient
    Local $hGDIBmp = _CreateHBITMAP($iLVWidth, $iLVHeight)

    ; Sets the background image in the ListView
    _GUICtrlListView_SetBkHBITMAP($hListView, $hGDIBmp, 0, 0, 0, True)

    GUISetState()
    ; Loop until the user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>Example_1

Func _CreateHBITMAP($iWidth, $iHeight)
    _GDIPlus_Startup()

    Local $tRectF = _GDIPlus_RectFCreate(0, 0, $iWidth, $iHeight)
    Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight)
    Local $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    Local $hBrush = _GDIPlus_LineBrushCreateFromRectWithAngle($tRectF, 0xFFFFF700, 0xFF2F00FF, 45)
    _GDIPlus_GraphicsFillRect($hGraphics, 0, 0, $iWidth, $iHeight, $hBrush)
    Local $hGDIBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)

    _GDIPlus_ImageDispose($hBitmap)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()
    Return $hGDIBmp
EndFunc   ;==>_CreateHBITMAP

Beispiel 2

#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>

Example_2() ; use UDF built listview

Func Example_2()
    Local $iGUIWidth = 500, $iGUIHeight = 300

    Local $hGUI = GUICreate("(UDF Created) ListView Set Background Image  (v" & @AutoItVersion & ")", $iGUIWidth, $iGUIHeight)
    WinSetTrans($hGUI, '', 0)
    GUISetState()

    ; Draws the background of the GUI
    _GDIPlus_Startup()
    Local $hImage = _GDIPlus_ImageLoadFromFile(RegRead('HKEY_CURRENT_USER\Control Panel\Desktop', 'Wallpaper'))
    Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hImage, 0, 0, $iGUIWidth, $iGUIHeight)

    ; Creates $hGDIBmp
    Local $hGDIBmp = _CreateHBITMAP($hImage, $iGUIWidth, $iGUIHeight)

    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()

    Local $hListView = _GUICtrlListView_Create($hGUI, "", 30, 30, $iGUIWidth - 60, $iGUIHeight - 60, BitOR($LVS_REPORT, $LVS_NOCOLUMNHEADER))
    _GUICtrlListView_SetExtendedListViewStyle($hListView, $LVS_EX_FULLROWSELECT)
    _GUICtrlListView_SetTextColor($hListView, 0x00FF00)

    ; Load images
    Local $hImageList = _GUIImageList_Create()
    _GUIImageList_Add($hImageList, _GUICtrlListView_CreateSolidBitMap($hListView, 0xFF0000, 16, 16))
    _GUIImageList_Add($hImageList, _GUICtrlListView_CreateSolidBitMap($hListView, 0xFFFF00, 16, 16))
    _GUIImageList_Add($hImageList, _GUICtrlListView_CreateSolidBitMap($hListView, 0x0000FF, 16, 16))
    _GUICtrlListView_SetImageList($hListView, $hImageList, 1)

    ; Add columns
    _GUICtrlListView_InsertColumn($hListView, 0, "Column 1", 100)
    _GUICtrlListView_InsertColumn($hListView, 1, "Column 2", 100)
    _GUICtrlListView_InsertColumn($hListView, 2, "Column 3", 100)

    ; Add items
    _GUICtrlListView_AddItem($hListView, "Row 1: Col 1", 0)
    _GUICtrlListView_AddSubItem($hListView, 0, "Row 1: Col 2", 1)
    _GUICtrlListView_AddSubItem($hListView, 0, "Row 1: Col 3", 2)
    _GUICtrlListView_AddItem($hListView, "Row 2: Col 1", 1)
    _GUICtrlListView_AddSubItem($hListView, 1, "Row 2: Col 2", 1)
    _GUICtrlListView_AddItem($hListView, "Row 3: Col 1", 2)

    ; Build groups
    _GUICtrlListView_EnableGroupView($hListView)
    _GUICtrlListView_InsertGroup($hListView, -1, 1, "Group 1")
    _GUICtrlListView_InsertGroup($hListView, -1, 2, "Group 2")
    _GUICtrlListView_SetItemGroupID($hListView, 0, 1)
    _GUICtrlListView_SetItemGroupID($hListView, 1, 2)
    _GUICtrlListView_SetItemGroupID($hListView, 2, 2)

    ; Sets the background image in the ListView
    _GUICtrlListView_SetBkHBITMAP($hListView, $hGDIBmp, 1, -30, -30, True)

    WinSetTrans($hGUI, '', 255)

    ; Loop until the user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>Example_2

Func _CreateHBITMAP($hImage, $iWidth, $iHeight)
    Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight)
    Local $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPLus_GraphicsDrawImageRect($hGraphics, $hImage, 0, 0, $iWidth, $iHeight)
    Local $hGDIBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)

    _GDIPlus_ImageDispose($hBitmap)
    _GDIPlus_GraphicsDispose($hGraphics)
    Return $hGDIBmp
EndFunc   ;==>_CreateHBITMAP