Gibt es eine Möglichkeit nach der letzten Spalte rechts den Button anzeigen zu lassen wo man Spalten die angezeigt werden sollen anzeigen lassen kann?
[Blockierte Grafik: http://img855.imageshack.us/img855/7311/screenshotry.jpg]
So sieht das zb bei Thunderbird aus.
Listview SpaltenauswahlButton
-
- [ offen ]
-
Gummibaer -
27. November 2012 um 18:03 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
Du kannst dir einen zusätzlichen Button mit Hilfe eines Child-Windows auf den Header aufsetzen:
[autoit]#include <GuiListview.au3>
[/autoit][autoit][/autoit][autoit]
#include <GuiHeader.au3>
#include <WindowsConstants.au3>$hGui = GUICreate('1', 600, 400)
[/autoit][autoit][/autoit][autoit]
$LV = GuiCtrlCreateListView('A|B|C', 10, 10, 500, 200)
For $i = 1 To 40
GUICtrlCreateListViewItem('A ' & $i & '|B ' & $i & '|C ' & $i, $LV)
Next
$hLVHeader = _GUICtrlListView_GetHeader($LV)
$aHeaderPos = _GUICtrlHeader_GetItemRect($hLVHeader, 0)
$iHeaderHeight = $aHeaderPos[3] - $aHeaderPos[1]
$hChild = GUICreate('', $iHeaderHeight, $iHeaderHeight, 500-10-$iHeaderHeight, 10, $WS_POPUP, $WS_EX_MDICHILD, $hGui)
$bt = GUICtrlCreateButton('..', 0, 0, $iHeaderHeight, $iHeaderHeight)GUISetState(@SW_SHOW, $hGui)
[/autoit][autoit][/autoit][autoit]
GUISetState(@SW_SHOW, $hChild)Do
[/autoit]
Until GUIGetMsg() = -3 -
Danke leider löst es das Problem für mich nicht zufriedenstellend.
Gibt es sonst vielleicht eine Möglichkeit ein extra Contextmenü nur für den Header zu setzen ? -
- Offizieller Beitrag
Gibt es sonst vielleicht eine Möglichkeit ein extra Contextmenü nur für den Header zu setzen ?
Speziell für diesen Einsatz habe ich die OwnContext UDF erstellt.
Geht z.B. so:Spoiler anzeigen
[autoit]#include <GuiListview.au3>
[/autoit] [autoit][/autoit] [autoit]
#include "OwnContext.au3"$hGui = GUICreate('Test', 600, 400)
[/autoit] [autoit][/autoit] [autoit]
$xLV = 10
$yLV = 10
$wLV = 500
$LV = GuiCtrlCreateListView('A|B|C', $xLV, $yLV, $wLV, 200)
$hListView = GUICtrlGetHandle($LV)
For $i = 1 To 40
GUICtrlCreateListViewItem('A ' & $i & '|B ' & $i & '|C ' & $i, $LV)
Next
$hLVHeader = _GUICtrlListView_GetHeader($LV)_GUICtrlOwnContext_Startup($hGui)
[/autoit] [autoit][/autoit] [autoit]
$hMnu = _GUICtrlOwnContext_Create($hLVHeader)
$menu1 = _GUICtrlOwnContext_AddItem($hMnu, 'Menüpunkt 1')
$menu2 = _GUICtrlOwnContext_AddItem($hMnu, 'Menüpunkt 2')
_GUICtrlOwnContext_AddItem($hMnu)
$menu3 = _GUICtrlOwnContext_AddItem($hMnu, 'Menüpunkt 3')GUISetState(@SW_SHOW, $hGui)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
[/autoit]
Switch GUIGetMsg()
Case -3
Exit
Case $menu1
MsgBox(0, 'Kontextmenü', 'Funktion für Menüpunkt 1')
Case $menu2
MsgBox(0, 'Kontextmenü', 'Funktion für Menüpunkt 2')
Case $menu3
MsgBox(0, 'Kontextmenü', 'Funktion für Menüpunkt 3')
EndSwitch
WEnd