CodyBarrett Posted March 25, 2010 Posted March 25, 2010 i'm curious.. i can't find it anywhere, i've gotten icons and text working, but on the same line, i would like to know if it is possible to make a ListViewItem like that of the Progman Listview? Icon above Text. is there a certain combination of styles? everything i have found only seems to work with single line of icon then text not icon above text. [size="1"][font="Tahoma"][COMPLETED]-----[FAILED]-----[ONGOING]VolumeControl|Binary Converter|CPU Usage| Mouse Wrap |WinHide|Word Scrammbler|LOCKER|SCREEN FREEZE|Decisions Decisions|Version UDF|Recast Desktop Mask|TCP Multiclient EXAMPLE|BTCP|LANCR|UDP serverless|AIOCR|OECR|Recast Messenger|AU3C|Tik-Tak-Toe|Snakes & Ladders|BattleShips|TRON|SNAKE_____________________[u]I love the Helpfile it is my best friend.[/u][/font][/size]
CodyBarrett Posted March 27, 2010 Author Posted March 27, 2010 does anyone know how to make a Thumbnail view icon in a listview control? [size="1"][font="Tahoma"][COMPLETED]-----[FAILED]-----[ONGOING]VolumeControl|Binary Converter|CPU Usage| Mouse Wrap |WinHide|Word Scrammbler|LOCKER|SCREEN FREEZE|Decisions Decisions|Version UDF|Recast Desktop Mask|TCP Multiclient EXAMPLE|BTCP|LANCR|UDP serverless|AIOCR|OECR|Recast Messenger|AU3C|Tik-Tak-Toe|Snakes & Ladders|BattleShips|TRON|SNAKE_____________________[u]I love the Helpfile it is my best friend.[/u][/font][/size]
KaFu Posted March 27, 2010 Posted March 27, 2010 Here's a start: http://msdn.microsoft.com/en-us/library/aa969541(VS.85).aspx#dwmthumbnailregistration OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2024-Oct-13) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Oct-13) HMW - Hide my Windows (2024-Oct-19) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2024-Oct-20) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16)
CodyBarrett Posted March 27, 2010 Author Posted March 27, 2010 (edited) Thank you Kafu though.. that is kinda beyond me.. i'll look into it more later, here is a working example of what i have. - i'm wondering if the icons in this can be larger and Above the text with a simple change of a Listview style? instead of the objects... as the Msdn says i need to do. expandcollapse popup#include <WindowsConstants.au3> #include <GUIConstantsEX.au3> #include <Misc.au3> #include <string.au3> #include <array.au3> #include <winapi.au3> #include <file.au3> #Include <GuiListView.au3> Opt ('Guioneventmode',1) $hWnd_Tray = WinGetHandle ('[CLASS:Shell_TrayWnd]') $CenterStyle = BitOR (0x01,0x0200) $EdgeStyle = 0x00000001 $Style = 0x80000000 $ExStyle = 0x00000100 $DefBk1 = 0x313131 $DefBk2 = 0x212121 $DefBk3 = 0xFF0000 $DefBk4 = 0xC40000 $GUI_bk = 0xFFFFFF $GUI_FontColor = 0x0 $Ctrl_bk = 0x0 $FontColor = 0xFFFFFF $FontName = 'Tahoma' $FontSize = 10 $FontWeight = 900 $DW = @DesktopWidth $DH = @DesktopHeight $DefW = Int ($DW/2) $DefH = Int ($DH/2) $chr = Chr (183) $Trans = 200 $StartBarH = Int ($DH/20) $chr_StartButton = Chr (216) $hWnd_Explorer = _NewExplorer (@DesktopDir) While 1 If ControlGetText ($hWnd_Explorer,'','Static1') <> WinGetTitle ($hWnd_Explorer) Then ControlSetText ($hWnd_Explorer,'','Static1',WinGetTitle ($hWnd_Explorer)) EndIf $dCtrlhWnd = ControlGetHandle ($hWnd_Explorer,'','SysListView321') $Dir = StringTrimLeft (StringTrimRight (WinGetTitle ($hWnd_Explorer),1),1) $dCtrlID = _WinAPI_GetDlgCtrlID ($dCtrlhWnd) $dCtrlCount = _GUICtrlListView_GetItemCount($dCtrlhWnd) $dFileCount = _FileListToArray ($Dir) If UBound ($dFileCount) - 1 <> $dCtrlCount Then _GUICtrlListView_DeleteAllItems ($dCtrlhWnd) For $ii = 1 To UBound ($dFileCount) - 1 $ID = GUICtrlCreateListViewItem ($dFileCount[$ii],$dCtrlID) If FileGetAttrib ($Dir & '\' & $dFileCount[$ii]) = 'D' Then GUICtrlSetImage ($ID,@SystemDir & '\Shell32.dll',4) Else GUICtrlSetImage ($ID,@SystemDir & '\Shell32.dll',1) EndIf GUICtrlSetOnEvent ($ID,'_Explorer_Action') Next EndIf Sleep (100) WEnd ;========================================================================== ;========================================================================== Func _ListViewCreate ($x,$y,$w,$h) $CtrlID = GUICtrlCreateListView ('',$x,$y,$w,$h,BitOR (0x0000,0x0003,0x4000,0x0008), BitOR (0x00000008,0x00000010)) GUICtrlSetFont ($CtrlID,$FontSize,$FontWeight,'',$FontName) GUICtrlSetBkColor ($CtrlID,$Ctrl_bk) GUICtrlSetColor ($CtrlID,$FontColor) Return $CtrlID EndFunc ;========================================================================== ;========================================================================== Func _NewExplorer ($Title) If DriveStatus ($Title) <> 'READY' Then Return $hWnd = _WinCreate ($Title) $x = 20 $y = 20 $bw = $x*4 $w = _WinAPI_GetWindowWidth ($hWnd) $h = _WinAPI_GetWindowHeight($hWnd)-($y*3) $ID = _ButtonCreate ('Previous',$x,$y*2,$bw,$y,$DefBk3,$DefBk4) GUICtrlSetOnEvent ($ID,'_Explorer_Back') $ID = GUICtrlCreateInput ('Go To Address...',$x+$bw,$y*2,$w-($bw*2)-($x*2),$y) GUICtrlSetFont ($ID,$FontSize,$FontWeight,'',$FontName) GUICtrlSetBkColor ($ID, $Ctrl_bk) GUICtrlSetColor ($ID,$FontColor) $ID = _ButtonCreate ('Go To',$w-$bw-$x,$y*2,$bw,$y,$DefBk3,$DefBk4) GUICtrlSetOnEvent ($ID,'_Explorer_GoTo') $ID = _ListViewCreate ($x,$y*3,$w-($x*2),$h-20) Return $hWnd EndFunc ;========================================================================== ;========================================================================== Func _Explorer_GoTo () Local $Data = ControlGetText (@GUI_WinHandle,'','Edit1') If DriveStatus ($Data) = 'READY' Then If WinExists ($chr & $Data & $chr) Then Return WinSetTitle (@GUI_WinHandle,'',$chr & $Data & $chr) Else Return EndIf EndFunc ;========================================================================== ;========================================================================== Func _Explorer_Back () Local $Data = StringTrimLeft (StringTrimRight (WinGetTitle (@GUI_WinHandle),1),1) Do $Data = StringTrimRight ($Data,1) Until StringRight ($Data,1) = '\' Or StringLen ($Data) = 1 If StringLen ($Data) = 1 Then Return $Data = StringTrimRight ($Data,1) WinSetTitle (@GUI_WinHandle,'',$chr & $Data & $chr) EndFunc ;========================================================================== ;========================================================================== Func _Explorer_Action () Local $File, $Temp,$hWnd,$Ex $CtrlData = GUICtrlRead (@GUI_CtrlId) $File = StringTrimLeft (StringTrimRight (WinGetTitle ($hWnd),1),1) & '\' & $CtrlData If StringInStr (FileGetAttrib ($File),'D') Then If WinExists ($chr & $File & $chr) Then Return $hWnd = @GUI_WinHandle WinSetTitle ($hWnd,'',$chr & $File & $chr) Else If FileExists ($File) Then ShellExecute ($File) Return EndIf Return EndFunc ;========================================================================== ;========================================================================== Func _WinCreate ($Title,$w=$DefW,$h=$DefH) Local $hWnd,$ButtonWH,$hWnd_Parent $Title = $chr & $Title & $chr $TitleBarH = 30 $ButtonWH = Int ($TitleBarH/1.5) $Pw = $w+($TitleBarH) $Ph = Int ($h+($TitleBarH*1.2)) $hWnd = GUICreate ($Title,$w,$h,-1,-1,$Style,$ExStyle) ;~ =================================================== $ID = GUICtrlCreateLabel ($Title,0,0,$w-($ButtonWH*2),$ButtonWH*2,$CenterStyle,$GUI_WS_EX_PARENTDRAG) GUICtrlCreateLabel ('',0,$ButtonWH*2,$ButtonWH,$h-($ButtonWH*2),-1,$GUI_WS_EX_PARENTDRAG) GUICtrlCreateLabel ('',$w-$ButtonWH,$ButtonWH*2,$ButtonWH,$h-($ButtonWH*2),-1,$GUI_WS_EX_PARENTDRAG) GUICtrlCreateLabel ('',0,$h-$ButtonWH,$w,$h-($ButtonWH*3),-1,$GUI_WS_EX_PARENTDRAG) GUICtrlSetFont ($ID,$FontSize,$FontWeight,'',$FontName) GUICtrlSetColor ($ID,$GUI_FontColor) ;~ =================================================== $ID = _ButtonCreate ('_',$w-($ButtonWH*2),0,$ButtonWH,$ButtonWH,-1,-1) GUICtrlSetColor ($ID,$GUI_FontColor) GUICtrlSetOnEvent ($ID,'_WinMin') $ID = _ButtonCreate ('X',$w-$ButtonWH,0,$ButtonWH,$ButtonWH,-1,-1) GUICtrlSetColor ($ID,$GUI_FontColor) GUICtrlSetOnEvent ($ID,'_WinClose') GUISetBkColor ($GUI_bk,$hWnd_Parent) GUISetOnEvent ($GUI_EVENT_CLOSE,'_WinClose',$hWnd) GUISetState () WinSetTrans ($hWnd,'',$Trans) Return $hWnd EndFunc ;========================================================================== ;========================================================================== Func _BackgroundCreate ($x,$y,$w,$h,$top=$DefBk1,$bottom=$DefBk2) Local $CtrlID $CtrlID = GUICtrlCreateLabel ('',$x,$y,$w,Int ($h/2)) GUICtrlSetState ($CtrlID,$gui_disable) GUICtrlSetBkColor ($CtrlID,$top) $CtrlID = GUICtrlCreateLabel ('',$x,Int ($y+($h/2)),$w,Int ($h/2)) GUICtrlSetState ($CtrlID,$gui_disable) GUICtrlSetBkColor ($CtrlID,$bottom) Return EndFunc ;========================================================================== ;========================================================================== Func _ButtonCreate ($Text,$x,$y,$w,$h,$top=$DefBk1,$bottom=$DefBk2) Local $CtrlID _BackgroundCreate ($x,$y,$w,$h,$top,$bottom) $CtrlID = GUICtrlCreateLabel ($Text,$x,$y,$w,$h,$CenterStyle) GUICtrlSetBkColor ($CtrlID,$GUI_BKCOLOR_TRANSPARENT) GUICtrlSetFont ($CtrlID,$FontSize,$FontWeight,'',$FontName) GUICtrlSetColor ($CtrlID,$FontColor) GUICtrlSetCursor ($CtrlID,0) Return $CtrlID EndFunc ;========================================================================== ;========================================================================== Func _WinMin () Local $hWnd $hWnd = @GUI_WinHandle GUISetState (@SW_MINIMIZE,$hWnd) Return EndFunc ;========================================================================== ;========================================================================== Func _Closing_Transparency ($hWnd) For $count = $Trans To 0 Step -10 WinSetTrans ($hWnd,'',$count) Sleep (10) Next EndFunc ;========================================================================== ;========================================================================== Func _WinClose () Local $hWnd $hWnd = @GUI_WinHandle _Closing_Transparency ($hWnd) _Exit () EndFunc ;========================================================================== ;========================================================================== Func _Exit () Exit EndFunc [edit] - irrelevant code Edited March 27, 2010 by CodyBarrett [size="1"][font="Tahoma"][COMPLETED]-----[FAILED]-----[ONGOING]VolumeControl|Binary Converter|CPU Usage| Mouse Wrap |WinHide|Word Scrammbler|LOCKER|SCREEN FREEZE|Decisions Decisions|Version UDF|Recast Desktop Mask|TCP Multiclient EXAMPLE|BTCP|LANCR|UDP serverless|AIOCR|OECR|Recast Messenger|AU3C|Tik-Tak-Toe|Snakes & Ladders|BattleShips|TRON|SNAKE_____________________[u]I love the Helpfile it is my best friend.[/u][/font][/size]
CodyBarrett Posted March 28, 2010 Author Posted March 28, 2010 (edited) well... using the _GuictrlListview_... functions.. and Imagelists.. i got the icon above the text working, though the icon is still as small as the first attempt i had was, even when the state of the icons are LARGE, it still looks small. AND i have a new problem, the icons are no longer working in OnEvent... :\ anyone know where i am going wrong?EDIT: Okay.. i left it, and went back to it, i found out that adding a simple line "GUICtrlSetStyle($ID,0x0000) ;$LVS_ICON" was the issue, it works fine once i add that. :\ so much work and it was something so simple.. here is a working example.expandcollapse popup#Include <WinAPI.au3> Opt ('GuiOnEventMode',1) $count = 0 $LastWindow = -1 _NewWindow () While True WEnd Func _WM_Active ($hWnd,$MsgID,$wParam,$lParam) Local $iIDFrom = BitAND($wParam, 0xFFFF) Local $iCode = BitShift($wParam, 16) Local $read If $LastWindow <> 0 And $LastWindow <> $hWnd Then WinSetTrans ($LastWindow,'',100) WinSetTrans ($hWnd,'',255) $LastWindow = $hWnd EndIf EndFunc Func _NewWindow () Local $hWnd,$lhWnd,$GUI_CtrlID,$cIcon $cIcon = _WinAPI_ExtractIconEx (@SystemDir & '\Shell32.dll',-1,0,0,0) $count+=1 GUICreate ('') $lhWnd = GUICtrlCreateListView ('',0,0,400,400) GUICtrlSetStyle($lhWnd, 0x0000) For $n = 1 To $cIcon $GUI_CtrlID = GUICtrlCreateListViewItem ($n,$lhWnd) GUICtrlSetImage ($GUI_CtrlID,@SystemDir & '\Shell32.dll',$n) GUICtrlSetOnEvent (-1,'_NewWindow') Next GUIRegisterMsg (0x0006,'_WM_Active') GUISetOnEvent (-3,'_CloseWindow') GUISetState () EndFunc Func _CloseWindow () $count -= 1 GUIDelete (@GUI_WinHandle) If $count = 0 Then Exit EndFunc Edited May 19, 2010 by CodyBarrett [size="1"][font="Tahoma"][COMPLETED]-----[FAILED]-----[ONGOING]VolumeControl|Binary Converter|CPU Usage| Mouse Wrap |WinHide|Word Scrammbler|LOCKER|SCREEN FREEZE|Decisions Decisions|Version UDF|Recast Desktop Mask|TCP Multiclient EXAMPLE|BTCP|LANCR|UDP serverless|AIOCR|OECR|Recast Messenger|AU3C|Tik-Tak-Toe|Snakes & Ladders|BattleShips|TRON|SNAKE_____________________[u]I love the Helpfile it is my best friend.[/u][/font][/size]
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now