Salut zusammen,
Ich hab im Forum schon eine Lösung mit Screenshot von nuts gefunden, es ist also nicht wirklich dringend.
Lieber wär mir allerdings eine Lösung ohne Screenshot .
Das mit der Transparenz funktioniert soweit auch, allerdings natürlich verbunden mit dem Folgeproblem, dass die Listviewitems den Focus nur dann erhalten, wenn sich der cursor direkt über dem Text befindet.
Ich habs versucht mit WM_NCHITTEST, allerdings ohne Erfolg bzw ist mir auch nicht klar ob/wie es (einfach?) möglich ist den Focus auf das entsprechende Item "umzuleiten".
Hier Code + Screenshot
Spoiler anzeigen
#include <GUIConstants.au3>
#include <Windowsconstants.au3>
#include <ListViewConstants.au3>
#include <GuiListView.au3>
#include <WINAPI.au3>
#Region - $gui1 Create
$gui1 = GUICreate("$gui1 ==> Parent GUI", 414, 502, 100, 100)
GUICtrlCreatePic("BK_Listview.jpg", 0, 0, 414, 502)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState()
#EndRegion - $gui1
#Region - $gui2 Create
$gui2 = GUICreate("child", 248, 388, 100, 100, $WS_POPUP, BitOR(0x2000000, $WS_EX_LAYERED, $WS_EX_MDICHILD), $gui1)
_WinAPI_SetLayeredWindowAttributes($gui2, 0x686868, 255)
$LVStyle = BitOR($LVS_REPORT,$LVS_NOCOLUMNHEADER,$LVS_SINGLESEL,$LVS_SHOWSELALWAYS)
$ExStyle = BitOR( $LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER, $LVS_EX_TRACKSELECT , $WS_EX_CLIENTEDGE)
$hListview = GUICtrlCreateListView("Name|Datum|Config", -2, -2, 252, 392, $LVStyle, $ExStyle )
$hLVHandle = GUICtrlGetHandle($hListView)
GUICtrlSetBkColor(-1, 0x686868)
GUICtrlSetFont(-1, 10 , 100, 0, "Lucida Console", 5)
GUICtrlSetColor(-1, 0xffffff)
;~GUICtrlSetCursor(-1,5)
_GUICtrlListView_SetColumn($hLVHandle, 2, "Name",190, 0)
_GUICtrlListView_SetColumn($hLVHandle, 1, "Datum", 100, 0)
_GUICtrlListView_SetColumn($hLVHandle, 0, "Config", 100, 0)
_GUICtrlListView_AddItem($hListView, "$gui2 LV Zeile 1: Spalte 1", 0)
_GUICtrlListView_AddSubItem($hListView, 0, "Zeile 1: Spalte 2", 1, 1)
_GUICtrlListView_AddSubItem($hListView, 0, "Zeile 1: Spalte 3", 2, 2)
_GUICtrlListView_AddItem($hListView, "Zeile 2: Spalte 1", 1)
_GUICtrlListView_AddSubItem($hListView, 1, "Zeile 2: Spalte 2", 1, 2)
_GUICtrlListView_AddItem($hListView, "Zeile 3: Spalte 1", 2)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
[/autoit] [autoit][/autoit] [autoit]While 1
$extMsg = GUIGetMsg(1)
$msg = $extMsg[0]
Switch $extMsg[1]
Case $gui1
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
[/autoit] [autoit][/autoit] [autoit]EndSwitch
WEnd
#endregion
Screenshot:
Wenns nicht zu kompliziert ist würd ich mich über ne Lösung freuen, sonst mach ichs halt mit extra BKImage für das Listview.
mfg,
t002