jcpetu Posted May 7, 2015 Posted May 7, 2015 Hi people,I'm trying to implement ListView row number visualization in another ListView, but so far I'm stuck. Here the code, if someone could help I'll appreciate it. expandcollapse popup#include <Array.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <GuiImageList.au3> #include <GuiListView.au3> #include <GuiScrollBars.au3> #include <ListViewConstants.au3> #include <WindowsConstants.au3> #include <GDIPlus.au3> Opt("GUIOnEventMode", 1) Global $MainGui, $MsgOk, $MainGuiRefresh, $MainGuiLabelInfo Global $MainGuiW = @DesktopWidth - 10, $MainGuiH = @DesktopHeight - 90 _GDIPlus_Startup() Global $Notebook = _GDIPlus_BitmapCreateFromMemory(ScanNew32x32(), True) ;GDI bitmap Global $Computer = _GDIPlus_BitmapCreateFromMemory(Computer32x32(), True) ;GDI bitmap _GDIPlus_Shutdown() ;------------------------------------------------------------------------------------------------------------------------------------------------------------------------ $MainGui = GUICreate("Test Sort", 800, 500, 10, 10, BitOR($GUI_SS_DEFAULT_GUI, $WS_CLIPSIBLINGS)) ; GUISetOnEvent($GUI_EVENT_CLOSE, "EventsCtrl") $MMenuLVAD = GUICtrlCreateListView("", 60, 82, 661, 321, -1, BitOR($LVS_EX_SUBITEMIMAGES, $LVS_EX_CHECKBOXES, $LVS_EX_FULLROWSELECT, $LVS_EX_HEADERDRAGDROP, $LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER)) $hLVMMenu = GUICtrlGetHandle($MMenuLVAD); GUICtrlSetOnEvent($MMenuLVAD, "_Setsort") _GUICtrlListView_RegisterSortCallBack($MMenuLVAD) $MMenuLVidx = GUICtrlCreateListView("#", 4, 82, 55, 321, BitOR($LVS_SHOWSELALWAYS, $LVS_SINGLESEL)) _GUICtrlListView_SetExtendedListViewStyle(-1,BitOR($LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER)) $hLVidx = GUICtrlGetHandle($MMenuLVidx); ;_GUIScrollBars_ShowScrollBar($hLVidx, $SB_BOTH, False) ;not working !!! ;;------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ;Add columns _GUICtrlListView_AddColumn($MMenuLVAD, "", 30) _GUICtrlListView_AddColumn($MMenuLVAD, "Title 1", 80, 3) _GUICtrlListView_AddColumn($MMenuLVAD, "Title 2", 80) _GUICtrlListView_AddColumn($MMenuLVAD, "Title 3", 80) _GUICtrlListView_AddColumn($MMenuLVAD, "Title 4", 80) ; Load images Global $hImage = _GUIImageList_Create(32, 32, 5, 3) _GUIImageList_Add($hImage, $Computer) _GUIImageList_Add($hImage, $Notebook) _GUIImageList_AddIcon($hImage, @SystemDir&"\"&"shell32.dll", 146) _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($MMenuLVAD, 0xff442211, 32, 32)) _GUICtrlListView_SetImageList($MMenuLVAD, $hImage, 1) ; 1 - Image list with small icons GUISetState(@SW_SHOW) For $i = 0 To 50 _GUICtrlListView_AddItem($MMenuLVAD, "", 777) ;777 should be an index that not exists in the array _GUICtrlListView_AddSubItem($MMenuLVAD, $i, "Computer" & Random(13467, 23452, 1), 1, 0) _GUICtrlListView_AddSubItem($MMenuLVAD, $i, "User" & Random(100, 500, 1), 2, 1) _GUICtrlListView_AddSubItem($MMenuLVAD, $i, Random(25, 5000, 1), 3,2) _GUICtrlListView_AddSubItem($MMenuLVAD, $i, Random(1, 800, 1), 4,3) _GUICtrlListView_AddItem($MMenuLVidx, $i + 1) Next $Recidx = _GUICtrlListView_GetItemRect($MMenuLVidx, 0) $RecidxDim= $Recidx[3] - $Recidx[1] While 1 Sleep(10) WEnd Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) #forceref $hWnd, $iMsg, $iwParam Local $tNMHDR, $hWndFrom, $iCode $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hLVMMenu,$hLVidx ;This two lines to sincronize ListViewRowNumbers------------------------------------------------------------------ Local $Lines = _SendMessage($hLVMMenu, $LVM_GETTOPINDEX) - _SendMessage($hLVidx, $LVM_GETTOPINDEX) _SendMessage($hLVidx, $LVM_SCROLL, 0, $Lines * $RecidxDim) EndSwitch EndFunc Func _Setsort() _GUICtrlListView_SortItems($MMenuLVAD, GUICtrlGetState($MMenuLVAD)) EndFunc ;==>_Setsort Func EventsCtrl() Local $Msg = @GUI_CtrlId Switch $Msg Case $GUI_EVENT_CLOSE _GUICtrlListView_UnRegisterSortCallBack($MMenuLVAD) _WinAPI_DeleteObject($Notebook) _WinAPI_DeleteObject($Computer) GUIDelete() Exit EndSwitch EndFunc ;==>EventsCtrl Func ScanNew32x32() Local $ScanNew32x32png = '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' $ScanNew32x32png &= 'bw7XdCI68NShV57/9jNPa1oFbx3/O6avXEEmley4Pjs7f/OZ7/7wxYOU0gFK6YBl21B1DaqhQOcsUJHNGtScLJZyb+vZ8qXCQnoCWShfSODT8LdPjaCjrR2xxoZXJ2ZmDv/iyE/Kn3nI3Bbsbe5cd6hra8/jiQ2dbdFIhDdME0uLi0pqam586uKV1+h8+Q/Osmn81xJ8Hvxb3/j6M59rHEdvYmvH85vv3fK1HTv7pIS/mTT6GqBTHUtd8cDk+vBub1iIXz55DlbYPYprlsndNjggx/ra98c3Rx9q7pY9trNCGmQPHojvxMZoOwROAR9Q+MS2hkRbX8tXfaanGwAn3CY4ALSH2qW+SIvYFg8H0eKJockbQdBTj6gdRNzXiGp9ETyzpEjC01uKCVv0OSSFW4H379sfBRD4uIQaAPvy9TMJOWS3NIR53Bnuwt2NX0JQCoIDQdQbw66WfWjxx3GGHsNkAwvKQZIoNsAj1ALv37ffB+AuAMsAlkZHTpg37wU6JerzmAh4TTT4OLQFIuCIB4QQeAURzUIQFAEEvTb8Hh1ekdTVB4KiUGPsEoAogOSn4QCgrVp5r2WXHGMZGe04xlbSaAvsQnvgUZStJBaUEaTVC1DMKQi6rnOGW/LZISLUUvPRkRPl/n37rwLo79+3nwEoAigAsFaXMtTMLM9ZnfmSYn8QWlDHUe/h4LgPwqTzyFb/huXqGCzLx4yMlaquOJeWM/M5oadrw/+KvQ3AOgCtAGIAqgAyAJIAFAAigFCsdR0rXy9fzDfo92qN/H2bdkjw8FOo2ENg7gLCdQqyJQ/yk0YhO2m8wUv2OQBUWFxcwNE3Zj4K1YfC4WBw9OXfDf2yf9/+hwF0AGgDsAbgOoAUgDOjIydyn7ECFj8ek5GYJzfzb+k7QSruETsnwiSyBN0wkV4uODOT9rWZ89pfi2k2VFi80Q3Jzv7+g4SIg5IoLrvgznwMSgOYBjA3OnKiWMtuyXsg3/+QuL37DvnBTd3CpmiYhAzLpQuL7sLktHX+wrj6fuoKPmnj/wG1Jc98TP5pLwAAAABJRU5ErkJggg==' Return Binary(_Base64Decode($ScanNew32x32png)) EndFunc ;==>_ScanNew32x32png Func Computer32x32() ;Original OK Local $Base64String = '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' $Base64String &= 'dMDxj1Yk5K9AX18f/tXRjp4eO4p27ZLWrl0blZ2dvXfNmjW/mTFjhlktPAcGBpT3IbTmr6paxNLbMlhTU/NOa2vrEQLinQTgWFmZMzkpKSZt/nyYzWZxHwh9iYkh8ryd4oBYcN396uu4eJPpDaqSjvDvqgHeeOao1TBPtRgq71RJ1Cq4vLz8zcuXL79FMTMhjkRW0xsQu/6Xvxj58s6XUovNhjiqB1evXs0vI/ZeZaWxq6vL+VR+vmTQ69dRpXyOvI9UDxbRJE8MDW25HmLBt5FaW1vbH0mmyQBoU7TBYEijcZHP5zNRirCIiIgBCqh/Uu8k/T18H2XBDCpWnyUpNq5ateo50t5CcaDnKaUa5WB4zU+sBCmGvqNb1Xbp0qULlF0tBMQzSYIp5uoYXt6rXunIc55fs8jwHGIvnQqZJAIWxxmh/6QcFDv27u7uBwS+h/aPUPfI4TRNAeC/aVJYVwGHV2qPPOCxtscO4N+zbf1+lKO2XAAAAABJRU5ErkJggg==' Return Binary(_WinAPI_Base64Decode($Base64String)) EndFunc ;==>_Base64String Func _Base64Decode($input_string) Local $struct = DllStructCreate("int") Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(1, 0, "") Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]") $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(2, 0, "") Return DllStructGetData($a, 1) EndFunc ;==>_Base64Decode Func _WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_WinAPI_Base64Decode
spudw2k Posted May 7, 2015 Posted May 7, 2015 I'm not sure what you are asking for exactly. Can you describe what you mean by "implement ListView row number visualization in another ListView"? Spoiler Things I've Made: Always On Top Tool ◊ AU History ◊ Deck of Cards ◊ HideIt ◊ ICU ◊ Icon Freezer ◊ Ipod Ejector ◊ Junos Configuration Explorer ◊ Link Downloader ◊ MD5 Folder Enumerator ◊ PassGen ◊ Ping Tool ◊ Quick NIC ◊ Read OCR ◊ RemoteIT ◊ SchTasksGui ◊ SpyCam ◊ System Scan Report Tool ◊ System UpTime ◊ Transparency Machine ◊ VMWare ESX Builder Misc Code Snippets: ADODB Example ◊ CheckHover ◊ Detect SafeMode ◊ DynEnumArray ◊ GetNetStatData ◊ HashArray ◊ IsBetweenDates ◊ Local Admins ◊ Make Choice ◊ Recursive File List ◊ Remove Sizebox Style ◊ Retrieve PNPDeviceID ◊ Retrieve SysListView32 Contents ◊ Set IE Homepage ◊ Tickle Expired Password ◊ Transpose Array Projects: Drive Space Usage GUI ◊ LEDkIT ◊ Plasma_kIt ◊ Scan Engine Builder ◊ SpeeDBurner ◊ SubnetCalc Cool Stuff: AutoItObject UDF ◊ Extract Icon From Proc ◊ GuiCtrlFontRotate ◊ Hex Edit Funcs ◊ Run binary ◊ Service_UDF
MikahS Posted May 7, 2015 Posted May 7, 2015 (edited) Maybe this will help us understand, do you mean like the _ArrayDisplay function, how it displays a column of numbers for the rows?ex: Edited May 7, 2015 by MikahS Snips & Scripts My Snips: graphCPUTemp ~ getENVvarsMy Scripts: Short-Order Encrypter - message and file encryption V1.6.1 ~ AuPad - Notepad written entirely in AutoIt V1.9.4 Feel free to use any of my code for your own use. Forum FAQ
UEZ Posted May 7, 2015 Posted May 7, 2015 (edited) Try this: expandcollapse popup#include <Array.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <GuiImageList.au3> #include <GuiListView.au3> #include <GuiScrollBars.au3> #include <ListViewConstants.au3> #include <WindowsConstants.au3> #include <GDIPlus.au3> Opt("GUIOnEventMode", 1) Global $MainGui, $MsgOk, $MainGuiRefresh, $MainGuiLabelInfo Global $MainGuiW = @DesktopWidth - 10, $MainGuiH = @DesktopHeight - 90 _GDIPlus_Startup() Global $Notebook = _GDIPlus_BitmapCreateFromMemory(ScanNew32x32(), True) ;GDI bitmap Global $Computer = _GDIPlus_BitmapCreateFromMemory(Computer32x32(), True) ;GDI bitmap _GDIPlus_Shutdown() ;------------------------------------------------------------------------------------------------------------------------------------------------------------------------ $MainGui = GUICreate("Test Sort", 800, 500, 10, 10, BitOR($GUI_SS_DEFAULT_GUI, $WS_CLIPSIBLINGS)) ; GUISetOnEvent($GUI_EVENT_CLOSE, "EventsCtrl") $MMenuLVAD = GUICtrlCreateListView("", 80, 82, 661, 321, -1, BitOR($LVS_EX_SUBITEMIMAGES, $LVS_EX_CHECKBOXES, $LVS_EX_FULLROWSELECT, $LVS_EX_HEADERDRAGDROP, $LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER)) $hLVMMenu = GUICtrlGetHandle($MMenuLVAD); GUICtrlSetOnEvent($MMenuLVAD, "_Setsort") _GUICtrlListView_RegisterSortCallBack($MMenuLVAD) $MMenuLVidx = GUICtrlCreateListView("", 4, 82, 76, 321, BitOR($LVS_SHOWSELALWAYS, $LVS_SINGLESEL)) _GUICtrlListView_SetExtendedListViewStyle(-1,BitOR($LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER, $LVS_EX_SUBITEMIMAGES)) $hLVidx = GUICtrlGetHandle($MMenuLVidx); _GUICtrlListView_AddColumn($hLVidx, "#", 52, 1, -1) ;_GUIScrollBars_ShowScrollBar($hLVidx, $SB_BOTH, False) ;not working !!! ;;------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ;Add columns _GUICtrlListView_AddColumn($MMenuLVAD, "", 30) _GUICtrlListView_AddColumn($MMenuLVAD, "Title 1", 80, 3) _GUICtrlListView_AddColumn($MMenuLVAD, "Title 2", 80) _GUICtrlListView_AddColumn($MMenuLVAD, "Title 3", 80) _GUICtrlListView_AddColumn($MMenuLVAD, "Title 4", 80) ; Load images Global $hImage = _GUIImageList_Create(32, 32, 5, 3) _GUIImageList_Add($hImage, $Computer) _GUIImageList_Add($hImage, $Notebook) _GUIImageList_AddIcon($hImage, @SystemDir&"\"&"shell32.dll", 146) _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($MMenuLVAD, 0xff442211, 32, 32)) _GUICtrlListView_SetImageList($MMenuLVAD, $hImage, 1) ; 1 - Image list with small icons _GUICtrlListView_SetImageList($MMenuLVidx, $hImage, 1) ; 1 - Image list with small icons For $i = 0 To 50 _GUICtrlListView_AddItem($MMenuLVAD, "", 777) ;777 should be an index that not exists in the array _GUICtrlListView_AddSubItem($MMenuLVAD, $i, "Computer" & Random(13467, 23452, 1), 1, 0) _GUICtrlListView_AddSubItem($MMenuLVAD, $i, "User" & Random(100, 500, 1), 2, 1) _GUICtrlListView_AddSubItem($MMenuLVAD, $i, Random(25, 5000, 1), 3,2) _GUICtrlListView_AddSubItem($MMenuLVAD, $i, Random(1, 800, 1), 4,3) _GUICtrlListView_AddItem($MMenuLVidx, $i, 4) Next GUISetState(@SW_SHOW) $Recidx = _GUICtrlListView_GetItemRect($MMenuLVidx, 0) $RecidxDim1 = $Recidx[3] - $Recidx[1] $Recidx = _GUICtrlListView_GetItemRect($MMenuLVAD, 0) $RecidxDim2 = $Recidx[3] - $Recidx[1] GUIRegisterMsg($WM_NOTIFY, "WM_Notify") While 1 Sleep(10) WEnd Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) #forceref $hWnd, $iMsg, $iwParam Local $tNMHDR, $hWndFrom, $iCode $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hLVMMenu ;This two lines to sincronize ListViewRowNumbers------------------------------------------------------------------ Local $Lines = _SendMessage($hLVMMenu, $LVM_GETTOPINDEX) - _SendMessage($hLVidx, $LVM_GETTOPINDEX) _SendMessage($hLVidx, $LVM_SCROLL, 0, $Lines * $RecidxDim1) Return 0 Case $hLVidx Local $Lines = _SendMessage($hLVidx, $LVM_GETTOPINDEX) - _SendMessage($hLVMMenu, $LVM_GETTOPINDEX) _SendMessage($hLVMMenu, $LVM_SCROLL, 0, $Lines * $RecidxDim2) Return 0 EndSwitch EndFunc Func _Setsort() _GUICtrlListView_SortItems($MMenuLVAD, GUICtrlGetState($MMenuLVAD)) EndFunc ;==>_Setsort Func EventsCtrl() Local $Msg = @GUI_CtrlId Switch $Msg Case $GUI_EVENT_CLOSE _GUICtrlListView_UnRegisterSortCallBack($MMenuLVAD) _WinAPI_DeleteObject($Notebook) _WinAPI_DeleteObject($Computer) GUIDelete() Exit EndSwitch EndFunc ;==>EventsCtrl Func ScanNew32x32() Local $ScanNew32x32png = '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' $ScanNew32x32png &= 'bw7XdCI68NShV57/9jNPa1oFbx3/O6avXEEmley4Pjs7f/OZ7/7wxYOU0gFK6YBl21B1DaqhQOcsUJHNGtScLJZyb+vZ8qXCQnoCWShfSODT8LdPjaCjrR2xxoZXJ2ZmDv/iyE/Kn3nI3Bbsbe5cd6hra8/jiQ2dbdFIhDdME0uLi0pqam586uKV1+h8+Q/Osmn81xJ8Hvxb3/j6M59rHEdvYmvH85vv3fK1HTv7pIS/mTT6GqBTHUtd8cDk+vBub1iIXz55DlbYPYprlsndNjggx/ra98c3Rx9q7pY9trNCGmQPHojvxMZoOwROAR9Q+MS2hkRbX8tXfaanGwAn3CY4ALSH2qW+SIvYFg8H0eKJockbQdBTj6gdRNzXiGp9ETyzpEjC01uKCVv0OSSFW4H379sfBRD4uIQaAPvy9TMJOWS3NIR53Bnuwt2NX0JQCoIDQdQbw66WfWjxx3GGHsNkAwvKQZIoNsAj1ALv37ffB+AuAMsAlkZHTpg37wU6JerzmAh4TTT4OLQFIuCIB4QQeAURzUIQFAEEvTb8Hh1ekdTVB4KiUGPsEoAogOSn4QCgrVp5r2WXHGMZGe04xlbSaAvsQnvgUZStJBaUEaTVC1DMKQi6rnOGW/LZISLUUvPRkRPl/n37rwLo79+3nwEoAigAsFaXMtTMLM9ZnfmSYn8QWlDHUe/h4LgPwqTzyFb/huXqGCzLx4yMlaquOJeWM/M5oadrw/+KvQ3AOgCtAGIAqgAyAJIAFAAigFCsdR0rXy9fzDfo92qN/H2bdkjw8FOo2ENg7gLCdQqyJQ/yk0YhO2m8wUv2OQBUWFxcwNE3Zj4K1YfC4WBw9OXfDf2yf9/+hwF0AGgDsAbgOoAUgDOjIydyn7ECFj8ek5GYJzfzb+k7QSruETsnwiSyBN0wkV4uODOT9rWZ89pfi2k2VFi80Q3Jzv7+g4SIg5IoLrvgznwMSgOYBjA3OnKiWMtuyXsg3/+QuL37DvnBTd3CpmiYhAzLpQuL7sLktHX+wrj6fuoKPmnj/wG1Jc98TP5pLwAAAABJRU5ErkJggg==' Return Binary(_Base64Decode($ScanNew32x32png)) EndFunc ;==>_ScanNew32x32png Func Computer32x32() ;Original OK Local $Base64String = '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' $Base64String &= 'dMDxj1Yk5K9AX18f/tXRjp4eO4p27ZLWrl0blZ2dvXfNmjW/mTFjhlktPAcGBpT3IbTmr6paxNLbMlhTU/NOa2vrEQLinQTgWFmZMzkpKSZt/nyYzWZxHwh9iYkh8ryd4oBYcN396uu4eJPpDaqSjvDvqgHeeOao1TBPtRgq71RJ1Cq4vLz8zcuXL79FMTMhjkRW0xsQu/6Xvxj58s6XUovNhjiqB1evXs0vI/ZeZaWxq6vL+VR+vmTQ69dRpXyOvI9UDxbRJE8MDW25HmLBt5FaW1vbH0mmyQBoU7TBYEijcZHP5zNRirCIiIgBCqh/Uu8k/T18H2XBDCpWnyUpNq5ateo50t5CcaDnKaUa5WB4zU+sBCmGvqNb1Xbp0qULlF0tBMQzSYIp5uoYXt6rXunIc55fs8jwHGIvnQqZJAIWxxmh/6QcFDv27u7uBwS+h/aPUPfI4TRNAeC/aVJYVwGHV2qPPOCxtscO4N+zbf1+lKO2XAAAAABJRU5ErkJggg==' Return Binary(_WinAPI_Base64Decode($Base64String)) EndFunc ;==>_Base64String Func _Base64Decode($input_string) Local $struct = DllStructCreate("int") Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(1, 0, "") Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]") $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(2, 0, "") Return DllStructGetData($a, 1) EndFunc ;==>_Base64Decode Func _WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_WinAPI_Base64DecodeCurrently I don't know to how to set the height of the cells in the left listview properly. I did it by adding also icons to the listview with the same size as in the right listview. Edited May 7, 2015 by UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
jcpetu Posted May 7, 2015 Author Posted May 7, 2015 Uez, thanks a lot.yes this is what I was trying to do.is it possible to hide the scroll bars?
UEZ Posted May 8, 2015 Posted May 8, 2015 Which scrollbar exactly? Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
jcpetu Posted May 8, 2015 Author Posted May 8, 2015 Both scrollbars of row listview, I attempeted to use without results:_GUIScrollBars_ShowScrollBar($hLVidx, $SB_BOTH, False) ;not working !!!
UEZ Posted May 8, 2015 Posted May 8, 2015 Try this:expandcollapse popup#include <Array.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <GuiImageList.au3> #include <GuiListView.au3> #include <GuiScrollBars.au3> #include <ListViewConstants.au3> #include <WindowsConstants.au3> #include <GDIPlus.au3> Opt("GUIOnEventMode", 1) Global $MainGui, $MsgOk, $MainGuiRefresh, $MainGuiLabelInfo Global $MainGuiW = @DesktopWidth - 10, $MainGuiH = @DesktopHeight - 90 _GDIPlus_Startup() Global $Notebook = _GDIPlus_BitmapCreateFromMemory(ScanNew32x32(), True) ;GDI bitmap Global $Computer = _GDIPlus_BitmapCreateFromMemory(Computer32x32(), True) ;GDI bitmap _GDIPlus_Shutdown() ;------------------------------------------------------------------------------------------------------------------------------------------------------------------------ $MainGui = GUICreate("Test Sort", 800, 500, 10, 10, BitOR($GUI_SS_DEFAULT_GUI, $WS_CLIPSIBLINGS)) ; GUISetOnEvent($GUI_EVENT_CLOSE, "EventsCtrl") $MMenuLVAD = GUICtrlCreateListView("", 80, 82, 661, 321, -1, BitOR($LVS_EX_SUBITEMIMAGES, $LVS_EX_CHECKBOXES, $LVS_EX_FULLROWSELECT, $LVS_EX_HEADERDRAGDROP, $LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER)) $hLVMMenu = GUICtrlGetHandle($MMenuLVAD); GUICtrlSetOnEvent($MMenuLVAD, "_Setsort") _GUICtrlListView_RegisterSortCallBack($MMenuLVAD) $MMenuLVidx = GUICtrlCreateListView("", 4, 82, 76, 321, BitOR($LVS_SHOWSELALWAYS, $LVS_SINGLESEL)) _GUICtrlListView_SetExtendedListViewStyle(-1,BitOR($LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER, $LVS_EX_SUBITEMIMAGES)) $hLVidx = GUICtrlGetHandle($MMenuLVidx); $iDLLUser32 = DllOpen("user32.dll") $wProcNewLV = DllCallbackRegister("_LVWndProc", "ptr", "hwnd;uint;wparam;lparam") $wProcOldLV = _WinAPI_SetWindowLong($hLVMMenu, $GWL_WNDPROC, DllCallbackGetPtr($wProcNewLV)) $wProcOldLV2 = _WinAPI_SetWindowLong($hLVidx, $GWL_WNDPROC, DllCallbackGetPtr($wProcNewLV)) _GUICtrlListView_AddColumn($hLVidx, "#", 52, 1, -1) ;_GUIScrollBars_ShowScrollBar($hLVidx, $SB_BOTH, False) ;not working !!! ;;------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ;Add columns _GUICtrlListView_AddColumn($MMenuLVAD, "", 30) _GUICtrlListView_AddColumn($MMenuLVAD, "Title 1", 80, 3) _GUICtrlListView_AddColumn($MMenuLVAD, "Title 2", 80) _GUICtrlListView_AddColumn($MMenuLVAD, "Title 3", 80) _GUICtrlListView_AddColumn($MMenuLVAD, "Title 4", 80) ; Load images Global $hImage = _GUIImageList_Create(32, 32, 5, 3) _GUIImageList_Add($hImage, $Computer) _GUIImageList_Add($hImage, $Notebook) _GUIImageList_AddIcon($hImage, @SystemDir&"\"&"shell32.dll", 146) _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($MMenuLVAD, 0xff442211, 32, 32)) _GUICtrlListView_SetImageList($MMenuLVAD, $hImage, 1) ; 1 - Image list with small icons _GUICtrlListView_SetImageList($MMenuLVidx, $hImage, 1) ; 1 - Image list with small icons For $i = 0 To 50 _GUICtrlListView_AddItem($MMenuLVAD, "", 777) ;777 should be an index that not exists in the array _GUICtrlListView_AddSubItem($MMenuLVAD, $i, "Computer" & Random(13467, 23452, 1), 1, 0) _GUICtrlListView_AddSubItem($MMenuLVAD, $i, "User" & Random(100, 500, 1), 2, 1) _GUICtrlListView_AddSubItem($MMenuLVAD, $i, Random(25, 5000, 1), 3,2) _GUICtrlListView_AddSubItem($MMenuLVAD, $i, Random(1, 800, 1), 4,3) _GUICtrlListView_AddItem($MMenuLVidx, $i, 4) Next GUISetState(@SW_SHOW) $Recidx = _GUICtrlListView_GetItemRect($MMenuLVidx, 0) $RecidxDim1 = $Recidx[3] - $Recidx[1] $Recidx = _GUICtrlListView_GetItemRect($MMenuLVAD, 0) $RecidxDim2 = $Recidx[3] - $Recidx[1] GUIRegisterMsg($WM_NOTIFY, "WM_Notify") While 1 Sleep(10) WEnd Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) #forceref $hWnd, $iMsg, $iwParam Local $tNMHDR, $hWndFrom, $iCode $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hLVMMenu ;This two lines to sincronize ListViewRowNumbers------------------------------------------------------------------ Local $Lines = _SendMessage($hLVMMenu, $LVM_GETTOPINDEX) - _SendMessage($hLVidx, $LVM_GETTOPINDEX) _SendMessage($hLVidx, $LVM_SCROLL, 0, $Lines * $RecidxDim1) Return 0 Case $hLVidx Local $Lines = _SendMessage($hLVidx, $LVM_GETTOPINDEX) - _SendMessage($hLVMMenu, $LVM_GETTOPINDEX) _SendMessage($hLVMMenu, $LVM_SCROLL, 0, $Lines * $RecidxDim2) Return 0 EndSwitch EndFunc Func _LVWndProc($hWnd, $Msg, $wParam, $lParam) #forceref $hWnd, $Msg, $wParam, $lParam Switch $Msg Case $WM_NCCALCSIZE _RemoveVHScroll($hWnd) Case $WM_WINDOWPOSCHANGING Local $tWINDOWPOS = DllStructCreate($tagWINDOWPOS, $lParam) ;uncomment for mouse scrolling - no mouse scrolling without, but border is not erased (vertical key scrolling flickers visibly)) DllStructSetData($tWINDOWPOS, "Flags", BitAND(DllStructGetData($tWINDOWPOS, "Flags"), BitNOT($SWP_FRAMECHANGED))) EndSwitch ;pass the unhandled messages to default WindowProc Local $aResult = DllCall($iDLLUser32, "lresult", "CallWindowProcW", "ptr", $wProcOldLV, "hwnd", $hWnd, "uint", $Msg, "wparam", $wParam, "lparam", $lParam) If @error Then Return -1 Return $aResult[0] EndFunc ;==>_LVWndProc Func _RemoveVHScroll($hWnd) Local $iLVStyle = _WinAPI_GetWindowLong($hWnd, $GWL_STYLE) $iLVStyle = BitAND($iLVStyle, BitNOT($WS_VSCROLL)) $iLVStyle = BitAND($iLVStyle, BitNOT($WS_HSCROLL)) _WinAPI_SetWindowLong($hWnd, $GWL_STYLE, $iLVStyle) EndFunc ;==>_RemoveVHScroll Func _Setsort() _GUICtrlListView_SortItems($MMenuLVAD, GUICtrlGetState($MMenuLVAD)) EndFunc ;==>_Setsort Func EventsCtrl() Local $Msg = @GUI_CtrlId Switch $Msg Case $GUI_EVENT_CLOSE If $wProcOldLV Then _WinAPI_SetWindowLong($hLVMMenu, $GWL_WNDPROC, $wProcOldLV) If $wProcOldLV2 Then _WinAPI_SetWindowLong($hLVidx, $GWL_WNDPROC, $wProcOldLV2) DllCallbackFree($wProcNewLV) GUIDelete($MainGui) DllClose($iDLLUser32) _GUICtrlListView_UnRegisterSortCallBack($MMenuLVAD) _WinAPI_DeleteObject($Notebook) _WinAPI_DeleteObject($Computer) Exit EndSwitch EndFunc ;==>EventsCtrl Func ScanNew32x32() Local $ScanNew32x32png = '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' $ScanNew32x32png &= 'bw7XdCI68NShV57/9jNPa1oFbx3/O6avXEEmley4Pjs7f/OZ7/7wxYOU0gFK6YBl21B1DaqhQOcsUJHNGtScLJZyb+vZ8qXCQnoCWShfSODT8LdPjaCjrR2xxoZXJ2ZmDv/iyE/Kn3nI3Bbsbe5cd6hra8/jiQ2dbdFIhDdME0uLi0pqam586uKV1+h8+Q/Osmn81xJ8Hvxb3/j6M59rHEdvYmvH85vv3fK1HTv7pIS/mTT6GqBTHUtd8cDk+vBub1iIXz55DlbYPYprlsndNjggx/ra98c3Rx9q7pY9trNCGmQPHojvxMZoOwROAR9Q+MS2hkRbX8tXfaanGwAn3CY4ALSH2qW+SIvYFg8H0eKJockbQdBTj6gdRNzXiGp9ETyzpEjC01uKCVv0OSSFW4H379sfBRD4uIQaAPvy9TMJOWS3NIR53Bnuwt2NX0JQCoIDQdQbw66WfWjxx3GGHsNkAwvKQZIoNsAj1ALv37ffB+AuAMsAlkZHTpg37wU6JerzmAh4TTT4OLQFIuCIB4QQeAURzUIQFAEEvTb8Hh1ekdTVB4KiUGPsEoAogOSn4QCgrVp5r2WXHGMZGe04xlbSaAvsQnvgUZStJBaUEaTVC1DMKQi6rnOGW/LZISLUUvPRkRPl/n37rwLo79+3nwEoAigAsFaXMtTMLM9ZnfmSYn8QWlDHUe/h4LgPwqTzyFb/huXqGCzLx4yMlaquOJeWM/M5oadrw/+KvQ3AOgCtAGIAqgAyAJIAFAAigFCsdR0rXy9fzDfo92qN/H2bdkjw8FOo2ENg7gLCdQqyJQ/yk0YhO2m8wUv2OQBUWFxcwNE3Zj4K1YfC4WBw9OXfDf2yf9/+hwF0AGgDsAbgOoAUgDOjIydyn7ECFj8ek5GYJzfzb+k7QSruETsnwiSyBN0wkV4uODOT9rWZ89pfi2k2VFi80Q3Jzv7+g4SIg5IoLrvgznwMSgOYBjA3OnKiWMtuyXsg3/+QuL37DvnBTd3CpmiYhAzLpQuL7sLktHX+wrj6fuoKPmnj/wG1Jc98TP5pLwAAAABJRU5ErkJggg==' Return Binary(_Base64Decode($ScanNew32x32png)) EndFunc ;==>_ScanNew32x32png Func Computer32x32() ;Original OK Local $Base64String = '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' $Base64String &= 'dMDxj1Yk5K9AX18f/tXRjp4eO4p27ZLWrl0blZ2dvXfNmjW/mTFjhlktPAcGBpT3IbTmr6paxNLbMlhTU/NOa2vrEQLinQTgWFmZMzkpKSZt/nyYzWZxHwh9iYkh8ryd4oBYcN396uu4eJPpDaqSjvDvqgHeeOao1TBPtRgq71RJ1Cq4vLz8zcuXL79FMTMhjkRW0xsQu/6Xvxj58s6XUovNhjiqB1evXs0vI/ZeZaWxq6vL+VR+vmTQ69dRpXyOvI9UDxbRJE8MDW25HmLBt5FaW1vbH0mmyQBoU7TBYEijcZHP5zNRirCIiIgBCqh/Uu8k/T18H2XBDCpWnyUpNq5ateo50t5CcaDnKaUa5WB4zU+sBCmGvqNb1Xbp0qULlF0tBMQzSYIp5uoYXt6rXunIc55fs8jwHGIvnQqZJAIWxxmh/6QcFDv27u7uBwS+h/aPUPfI4TRNAeC/aVJYVwGHV2qPPOCxtscO4N+zbf1+lKO2XAAAAABJRU5ErkJggg==' Return Binary(_WinAPI_Base64Decode($Base64String)) EndFunc ;==>_Base64String Func _Base64Decode($input_string) Local $struct = DllStructCreate("int") Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(1, 0, "") Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]") $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(2, 0, "") Return DllStructGetData($a, 1) EndFunc ;==>_Base64Decode Func _WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_WinAPI_Base64Decode I'm not sure whether I initialized the callback properly but it works for me. Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
jcpetu Posted May 8, 2015 Author Posted May 8, 2015 UEZ, Yes it works, as usual you are the guy.THANKS a lot and have a good weekend.
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