Jump to content

A few handy functions for easily seeing listview and window styles


Recommended Posts

Literally just a list of listview styles / extended styles and WS / WSEX styles prints them in the console by their name

;Debug
;Debug_GetLvMStyles($g_hListView)
;Debug_GetHDStyles($g_hListView)
;Debug_GetWSStyles($g_hListView)
;Debug_GetWSStyles($g_hWnd)



    ;;#include <ListViewConstants.au3>
    Func Debug_GetLvMStyles($hListView)
    Local $LVStyle = _WinAPI_GetWindowLong($hListView, -16)
    Local $LVExStyle = _GUICtrlListView_GetExtendedListViewStyle($hListView)
    Local $sLVSTYLES
    Local $sLVExSTYLES
    If @error Then
    ConsoleWrite(" Error Debug_GetLvMStyles Couldn't retrieve Styles")
    Return
    EndIf
    If BitAND($LVStyle, $LVS_ALIGNLEFT) Then $sLVSTYLES &= "$LVS_ALIGNLEFT, "
    If BitAND($LVStyle, $LVS_ALIGNMASK) Then $sLVSTYLES &= "$LVS_ALIGNMASK, "
    If BitAND($LVStyle, $LVS_ALIGNTOP) Then $sLVSTYLES &= "$LVS_ALIGNTOP, "
    If BitAND($LVStyle, $LVS_AUTOARRANGE) Then $sLVSTYLES &= "$LVS_AUTOARRANGE, "
    If BitAND($LVStyle, $LVS_DEFAULT) Then $sLVSTYLES &= "LVS_DEFAULT,"
    If BitAND($LVStyle, $LVS_EDITLABELS) Then $sLVSTYLES &= "LVS_EDITLABELS, "
    If BitAND($LVStyle, $LVS_ICON) Then $sLVSTYLES &= "LVS_ICON, "
    If BitAND($LVStyle, $LVS_LIST) Then $sLVSTYLES &= "LVS_LIST, "
    If BitAND($LVStyle, $LVS_NOCOLUMNHEADER) Then $sLVSTYLES &= "LVS_NOCOLUMNHEADER, "
    If BitAND($LVStyle, $LVS_NOLABELWRAP) Then $sLVSTYLES &= "LVS_NOLABELWRAP, "
    If BitAND($LVStyle, $LVS_NOSCROLL) Then $sLVSTYLES &= "LVS_NOSCROLL, "
    If BitAND($LVStyle, $LVS_NOSORTHEADER) Then $sLVSTYLES &= "LVS_NOSORTHEADER, "
    If BitAND($LVStyle, $LVS_OWNERDATA) Then $sLVSTYLES &= "LVS_OWNERDATA, "
    If BitAND($LVStyle, $LVS_OWNERDRAWFIXED) Then $sLVSTYLES &= "LVS_OWNERDRAWFIXED, "
    If BitAND($LVStyle, $LVS_REPORT) Then $sLVSTYLES &= "LVS_REPORT, "
    If BitAND($LVStyle, $LVS_SHAREIMAGELISTS) Then $sLVSTYLES &= "LVS_SHAREIMAGELISTS, "
    If BitAND($LVStyle, $LVS_SHOWSELALWAYS) Then $sLVSTYLES &= "LVS_SHOWSELALWAYS, "
    If BitAND($LVStyle, $LVS_SINGLESEL) Then $sLVSTYLES &= "LVS_SINGLESEL, "
    If BitAND($LVStyle, $LVS_SMALLICON) Then $sLVSTYLES &= "LVS_SMALLICON, "
    If BitAND($LVStyle, $LVS_SORTASCENDING) Then $sLVSTYLES &= "LVS_SORTASCENDING, "
    If BitAND($LVStyle, $LVS_SORTDESCENDING) Then $sLVSTYLES &= "LVS_SORTDESCENDING, "
    If BitAND($LVStyle, $LVS_TYPEMASK) Then $sLVSTYLES &= "LVS_TYPEMASK, "
    If BitAND($LVStyle, $LVS_TYPESTYLEMASK) Then $sLVSTYLES &= "LVS_TYPESTYLEMASK, "

    If BitAND($LVExStyle, $LVS_EX_AUTOAUTOARRANGE) Then $sLVExSTYLES &= "$LVS_EX_AUTOARRANGE, "
    If BitAND($LVExStyle, $LVS_EX_AUTOCHECKSELECT) Then $sLVExSTYLES &= "$LVS_EX_AUTOCHECKSELECT, "
    If BitAND($LVExStyle, $LVS_EX_AUTOSIZECOLUMNS) Then $sLVExSTYLES &= "$LVS_EX_AUTOSIZECOLUMNS, "
    If BitAND($LVExStyle, $LVS_EX_BORDERSELECT) Then $sLVExSTYLES &= "$LVS_EX_BORDERSELECT, "
    If BitAND($LVExStyle, $LVS_EX_CHECKBOXES) Then $sLVExSTYLES &= "$LVS_EX_CHECKBOXES, "
    If BitAND($LVExStyle, $LVS_EX_COLUMNOVERFLOW) Then $sLVExSTYLES &= "$LVS_EX_COLUMNOVERFLOW, "
    If BitAND($LVExStyle, $LVS_EX_COLUMNSNAPPOINTS) Then $sLVExSTYLES &= "$LVS_EX_COLUMNSNAPPOINTS, "
    If BitAND($LVExStyle, $LVS_EX_DOUBLEBUFFER) Then $sLVExSTYLES &= "$LVS_EX_DOUBLEBUFFER, "
    If BitAND($LVExStyle, $LVS_EX_FLATSB) Then $sLVExSTYLES &= "$LVS_EX_FLATSB, "
    If BitAND($LVExStyle, $LVS_EX_FULLROWSELECT) Then $sLVExSTYLES &= "$LVS_EX_FULLROWSELECT, "
    If BitAND($LVExStyle, $LVS_EX_GRIDLINES) Then $sLVExSTYLES &= "$LVS_EX_GRIDLINES, "
    If BitAND($LVExStyle, $LVS_EX_HEADERDRAGDROP) Then $sLVExSTYLES &= "$LVS_EX_HEADERDRAGDROP, "
    If BitAND($LVExStyle, $LVS_EX_HEADERINALLVIEWS) Then $sLVExSTYLES &= "$LVS_EX_HEADERINALLVIEWS, "
    If BitAND($LVExStyle, $LVS_EX_HIDELABELS) Then $sLVExSTYLES &= "$LVS_EX_HIDELABELS, "
    If BitAND($LVExStyle, $LVS_EX_INFOTIP) Then $sLVExSTYLES &= "$LVS_EX_INFOTIP, "
    If BitAND($LVExStyle, $LVS_EX_JUSTIFYCOLUMNS) Then $sLVExSTYLES &= "$LVS_EX_JUSTIFYCOLUMNS, "
    If BitAND($LVExStyle, $LVS_EX_LABELTIP) Then $sLVExSTYLES &= "$LVS_EX_LABELTIP, "
    If BitAND($LVExStyle, $LVS_EX_MULTIWORKAREAS) Then $sLVExSTYLES &= "$LVS_EX_MULTIWORKAREAS, "
    If BitAND($LVExStyle, $LVS_EX_ONECLICKACTIVATE) Then $sLVExSTYLES &= "$LVS_EX_ONECLICKACTIVATE, "
    If BitAND($LVExStyle, $LVS_EX_REGIONAL) Then $sLVExSTYLES &= "$LVS_EX_REGIONAL, "
    If BitAND($LVExStyle, $LVS_EX_SIMPLESELECT) Then $sLVExSTYLES &= "$LVS_EX_SIMPLESELECT, "
    If BitAND($LVExStyle, $LVS_EX_SNAPTOGRID) Then $sLVExSTYLES &= "$LVS_EX_SNAPTOGRID, "
    If BitAND($LVExStyle, $LVS_EX_SUBITEMIMAGES) Then $sLVExSTYLES &= "$LVS_EX_SUBITEMIMAGES, "
    If BitAND($LVExStyle, $LVS_EX_TRACKSELECT) Then $sLVExSTYLES &= "$LVS_EX_TRACKSELECT, "
    If BitAND($LVExStyle, $LVS_EX_TRANSPARENTBKGND) Then $sLVExSTYLES &= "$LVS_EX_TRANSPARENTBACKGROUND, "
    If BitAND($LVExStyle, $LVS_EX_TRANSPARENTSHADOWTEXT) Then $sLVExSTYLES &= "$LVS_EX_TRANSPARENTTEXTSHADOW, "
    If BitAND($LVExStyle, $LVS_EX_TWOCLICKACTIVATE) Then $sLVExSTYLES &= "$LVS_EX_TWOCLICKACTIVATE, "
    If BitAND($LVExStyle, $LVS_EX_UNDERLINECOLD) Then $sLVExSTYLES &= "$LVS_EX_UNDERLINECOLD, "
    If BitAND($LVExStyle, $LVS_EX_UNDERLINEHOT) Then $sLVExSTYLES &= "$LVS_EX_UNDERLINEHOT, "
    ConsoleWrite("Lv Styles= " & $sLVSTYLES & @CRLF)
    ConsoleWrite("Lv Ex Styles= " & $sLVExSTYLES & @CRLF)

    EndFunc   ;==>Debug_GetLvMStyles

    ;;#include <HeaderConstants.au3>
    Func Debug_GetHDStyles($hListView)
    Local $hHeader = _GUICtrlListView_GetHeader($hListView)
    Local $HDStyle = _WinAPI_GetWindowLong($hHeader, -16)
    Local $sHDSTYLES
    If @error Then
    ConsoleWrite(" Error Debug_GetHDStyles Couldn't retrieve Styles")
    Return
    EndIf
    If BitAND($HDStyle, $HDS_BUTTONS) Then $sHDSTYLES &= "$HDS_STYLES, " ;0x00000002 ; Each item in the control looks and behaves like a push button
    If BitAND($HDStyle, $HDS_CHECKBOXES) Then $sHDSTYLES &= "$HDS_CHECKBOXES, " ;0x00000400 ; Allows the placing of checkbo       ;es on header items on Vista
    If BitAND($HDStyle, $HDS_DRAGDROP) Then $sHDSTYLES &= "$HDS_DRAGDROP, " ;0x00000040 ; Allows drag-and-drop reordering of header items
    If BitAND($HDStyle, $HDS_FILTERBAR) Then $sHDSTYLES &= "$HDS_FILTERBAR, " ;0x00000100 ; Include a filter bar as part of the standard header control
    If BitAND($HDStyle, $HDS_FLAT) Then $sHDSTYLES &= "$HDS_FLAT, " ;0x00000200 ; Control is drawn flat when XP is running in classic mode
    If BitAND($HDStyle, $HDS_FULLDRAG) Then $sHDSTYLES &= "$HDS_FULLDRAG, " ;0x00000080 ; Column contents are displayed while the user resizes a column
    If BitAND($HDStyle, $HDS_HIDDEN) Then $sHDSTYLES &= "$HDS_HIDDEN, " ;0x00000008 ; Indicates a header control that is intended to be hidden
    If BitAND($HDStyle, $HDS_HORZ) Then $sHDSTYLES &= "$HDS_HORZ, " ;0x00000000 ; Creates a header control with a horizontal orientation
    If BitAND($HDStyle, $HDS_HOTTRACK) Then $sHDSTYLES &= "$HDS_HOTTRACK, " ;0x00000004 ; Enables hot tracking
    If BitAND($HDStyle, $HDS_NOSIZING) Then $sHDSTYLES &= "$HDS_NOSIZING, " ;0x0800 ; The user cannot drag the divider on the header control on Vista
    If BitAND($HDStyle, $HDS_OVERFLOW) Then $sHDSTYLES &= "$HDS_OVERFLOW, " ;0x1000 ; A button is displayed when not all items can be displayed within the header control's rectangle on Vista
    If BitAND($HDStyle, $HDS_DEFAULT) Then $sHDSTYLES &= "$HDS_DEFAULT, " ;0x00000046 ; Default header style $HDS_DRAGDROP + $HDS_HOTTRACK + $HDS_BUTTONS
    ConsoleWrite("Header Styles= " & $sHDSTYLES & @CRLF)
    EndFunc   ;==>Debug_GetHDStyles

    Func Debug_GetWSStyles($hWnd)
    ;#include <WindowsConstants.au3>
    Local $WSStyle = _WinAPI_GetWindowLong($hWnd, -16)
    Local $sWSSTYLES
    Local $WSEXStyle = _WinAPI_GetWindowLong($hWnd, -20) ;_GUICtrlListView_GetExtendedListViewStyle($hListView);
    Local $sWSEXSTYLES
    If @error Then
    ConsoleWrite(" Error Debug_GetWSStyles Couldn't retrieve Styles")
    Return
    EndIf
    If BitAND($WSStyle, $WS_OVERLAPPED) Then $sWSSTYLES &= "$WS_OVERLAPPED, "
    If BitAND($WSStyle, $WS_TILED) Then $sWSSTYLES &= "$WS_TILED, "
    If BitAND($WSStyle, $WS_MAXIMIZEBOX) Then $sWSSTYLES &= "$WS_MAXIMIZEBOX, " ;0x00010000
    If BitAND($WSStyle, $WS_MINIMIZEBOX) Then $sWSSTYLES &= "$WS_MINIMIZEBOX, " ;0x00020000
    If BitAND($WSStyle, $WS_TABSTOP) Then $sWSSTYLES &= "$WS_TABSTOP, " ;0x00010000
    If BitAND($WSStyle, $WS_GROUP) Then $sWSSTYLES &= "$WS_GROUP, " ;0x00020000
    If BitAND($WSStyle, $WS_SIZEBOX) Then $sWSSTYLES &= "$WS_SIZEBOX, " ;0x00040000
    If BitAND($WSStyle, $WS_THICKFRAME) Then $sWSSTYLES &= "$WS_THICKFRAME, "
    If BitAND($WSStyle, $WS_SYSMENU) Then $sWSSTYLES &= "$WS_SYSMENU, " ;0x00080000
    If BitAND($WSStyle, $WS_HSCROLL) Then $sWSSTYLES &= "$WS_HSCROLL, " ;0x00100000
    If BitAND($WSStyle, $WS_VSCROLL) Then $sWSSTYLES &= "$WS_VSCROLL, " ;0x00200000
    If BitAND($WSStyle, $WS_DLGFRAME) Then $sWSSTYLES &= "$WS_DLGFRAME, " ;0x00400000
    If BitAND($WSStyle, $WS_BORDER) Then $sWSSTYLES &= "$WS_BORDER, " ;0x00800000
    If BitAND($WSStyle, $WS_CAPTION) Then $sWSSTYLES &= "$WS_CAPTION, " ;0x00C00000
    If BitAND($WSStyle, $WS_OVERLAPPEDWINDOW) Then $sWSSTYLES &= "$WS_OVERLAPPEDWINDOW, "
    If BitAND($WSStyle, $WS_TILEDWINDOW) Then $sWSSTYLES &= "$WS_TILEDWINDOW, "
    If BitAND($WSStyle, $WS_MAXIMIZE) Then $sWSSTYLES &= "$WS_MAXIMIZE, " ;0x01000000
    If BitAND($WSStyle, $WS_CLIPCHILDREN) Then $sWSSTYLES &= "$WS_CLIPCHILDREN, " ;0x02000000
    If BitAND($WSStyle, $WS_CLIPSIBLINGS) Then $sWSSTYLES &= "$WS_CLIPSIBLINGS, " ;0x04000000
    If BitAND($WSStyle, $WS_DISABLED) Then $sWSSTYLES &= "$WS_DISABLED, " ;0x08000000
    If BitAND($WSStyle, $WS_VISIBLE) Then $sWSSTYLES &= "$WS_VISIBLE, " ;0x10000000
    If BitAND($WSStyle, $WS_MINIMIZE) Then $sWSSTYLES &= "$WS_MINIMIZE, " ;0x20000000
    If BitAND($WSStyle, $WS_ICONIC) Then $sWSSTYLES &= "$WS_ICONIC, "
    If BitAND($WSStyle, $WS_CHILD) Then $sWSSTYLES &= "$WS_CHILD, " ;0x40000000
    If BitAND($WSStyle, $WS_CHILDWINDOW) Then $sWSSTYLES &= "$WS_CHILDWINDOW, "
    If BitAND($WSStyle, $WS_POPUP) Then $sWSSTYLES &= "$WS_POPUP, " ;0x80000000
    If BitAND($WSStyle, $WS_POPUPWINDOW) Then $sWSSTYLES &= "$WS_POPUPWINDOW, " ;0x80880000

    If BitAND($WSEXStyle, $WS_EX_ACCEPTFILES) Then $sWSEXSTYLES &= "$WS_EX_ACCEPTFILES, " ;0x00000010
    If BitAND($WSEXStyle, $WS_EX_APPWINDOW) Then $sWSEXSTYLES &= "$WS_EX_APPWINDOW, " ;0x00040000
    If BitAND($WSEXStyle, $WS_EX_COMPOSITED) Then $sWSEXSTYLES &= "$WS_EX_COMPOSITED, " ;0x02000000
    If BitAND($WSEXStyle, $WS_EX_CONTROLPARENT) Then $sWSEXSTYLES &= "$WS_EX_CONTROLPARENT, " ;0x10000
    If BitAND($WSEXStyle, $WS_EX_CLIENTEDGE) Then $sWSEXSTYLES &= "$WS_EX_CLIENTEDGE, " ;0x00000200
    If BitAND($WSEXStyle, $WS_EX_CONTEXTHELP) Then $sWSEXSTYLES &= "$WS_EX_CONTEXTHELP, " ;0x00000400
    If BitAND($WSEXStyle, $WS_EX_DLGMODALFRAME) Then $sWSEXSTYLES &= "$WS_EX_DLGMODALFRAME, " ;0x00000001
    If BitAND($WSEXStyle, $WS_EX_LAYERED) Then $sWSEXSTYLES &= "$WS_EX_LAYERED, " ;0x00080000
    If BitAND($WSEXStyle, $WS_EX_LAYOUTRTL) Then $sWSEXSTYLES &= "$WS_EX_LAYOUTRTL, " ;0x400000
    If BitAND($WSEXStyle, $WS_EX_LEFT) Then $sWSEXSTYLES &= "$WS_EX_LEFT, " ;0x00000000
    If BitAND($WSEXStyle, $WS_EX_LEFTSCROLLBAR) Then $sWSEXSTYLES &= "$WS_EX_LEFTSCROLLBAR, " ;0x00004000
    If BitAND($WSEXStyle, $WS_EX_LTRREADING) Then $sWSEXSTYLES &= "$WS_EX_LTRREADING, " ;0x00000000
    If BitAND($WSEXStyle, $WS_EX_MDICHILD) Then $sWSEXSTYLES &= "$WS_EX_MDICHILD, " ;0x00000040
    If BitAND($WSEXStyle, $WS_EX_NOACTIVATE) Then $sWSEXSTYLES &= "$WS_EX_NOACTIVATE, " ;0x08000000
    If BitAND($WSEXStyle, $WS_EX_NOINHERITLAYOUT) Then $sWSEXSTYLES &= "$WS_EX_NOINHERITLAYOUT, " ;0x00100000
    If BitAND($WSEXStyle, $WS_EX_NOPARENTNOTIFY) Then $sWSEXSTYLES &= "$WS_EX_NOPARENTNOTIFY, " ;0x00000004
    If BitAND($WSEXStyle, $WS_EX_RIGHT) Then $sWSEXSTYLES &= "$WS_EX_RIGHT, " ;0x00001000
    If BitAND($WSEXStyle, $WS_EX_RIGHTSCROLLBAR) Then $sWSEXSTYLES &= "$WS_EX_RIGHTSCROLLBAR, " ;0x00000000
    If BitAND($WSEXStyle, $WS_EX_RTLREADING) Then $sWSEXSTYLES &= "$WS_EX_RTLREADING, " ;0x2000
    If BitAND($WSEXStyle, $WS_EX_STATICEDGE) Then $sWSEXSTYLES &= "$WS_EX_STATICEDGE, " ;0x00020000
    If BitAND($WSEXStyle, $WS_EX_TOOLWINDOW) Then $sWSEXSTYLES &= "$WS_EX_TOOLWINDOW, " ;0x00000080
    If BitAND($WSEXStyle, $WS_EX_TOPMOST) Then $sWSEXSTYLES &= "$WS_EX_TOPMOST, " ;0x00000008
    If BitAND($WSEXStyle, $WS_EX_TRANSPARENT) Then $sWSEXSTYLES &= "$WS_EX_TRANSPARENT, " ;0x00000020
    If BitAND($WSEXStyle, $WS_EX_WINDOWEDGE) Then $sWSEXSTYLES &= "$WS_EX_WINDOWEDGE, " ;0x00000100
    If BitAND($WSEXStyle, $WS_EX_OVERLAPPEDWINDOW) Then $sWSEXSTYLES &= "$WS_EX_OVERLAPPEDWINDOW, "
    If BitAND($WSEXStyle, $WS_EX_PALETTEWINDOW) Then $sWSEXSTYLES &= "$WS_EX_PALETTEWINDOW, "
    ConsoleWrite("WS Styles= " & $sWSSTYLES & @CRLF)
    ConsoleWrite("WS EX Styles= " & $sWSEXSTYLES & @CRLF)
    EndFunc   ;==>Debug_GetWSStyles

 

Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By nacerbaaziz
      hello guys, please i need your help
      am trying to work with CreateWindowEx api, i created the window with it controls, also i setup the call back function
      i'am using WinMSGLoop to focus with the keyboard.
      here i have a problem, i hope that you can help me.
      on the controls i used the UDF that comme with the autoit, such as _GUIButton_Create, _GUIListBox_Create....
      but i can't find a STATIC control UDF, for that i used this

      local $h_ssrvlbl = _WinAPI_CreateWindowEx(0, "STATIC", "الخادم", BitOr($WS_VISIBLE, $WS_CHILD, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN), 250, 10, 100, 20, $hWnd)
      as you can see here, there is an arabic text, so here is the problem, the arabic text isn't show normally, what is the problem here?
      also i have  an other question about keyboard focus, when i used WinMSGLoop, it worked, but if i press alt+tab to switch windows or focus an other window and return back to my window, the focus of control is kill.
      can any one help me to solve that please?
      my code will be as file here with the include files
      i hope can any one help me here
      thanks in advance
       
      speed Test win.zip
    • By UEZ
      This project has been discontinued!
       
      Here a small tool I wrote to update my Sysinternal tools collection without the need to download always the whole package or visiting the site to check for updates. I know that there are several tools available (also some tools written in AutoIt) but here another one for the collection. It was good exercise for me to code it.
       
       
        
       
       
      Some files from the live web site cannot be downloaded although they are visible!
       
      Here the download link of the source code only: AutoIt Sysinternal Tools Synchronizer v0.99.6 build 2020-09-23 beta.7z  (1557 downloads previously)
      -=> Requires AutoIt version 3.3.13.20 or higher / tested on Win8.1 real machine and some VMs: Win7 / Vista / Win10
       
      Compiled exe only: @MediaFire
       
      Just select the Sysinternal Tools folder or create one and press the synchronize button to download the selected items. Click on AutoIt label (near to left upper corner) to open menu.
       
      Special thanks to LarsJ, Melba23 and mesale0077 for their help. 
       
      I've still some ideas to implement which are more gimmick related, so it is not finished yet...
      If you want to add your language please check out #Region Language. Thanks. 
       
      Please report any bug or if you have any suggestions.
       
      The language of the tool tip from each of the executable in the left list view were automatically created using Google translator and weren't checked for correctness.
       
      Br,
      UEZ
    • By Cengokill
      Hi everyone,
      I have created a ListView that is in a tab, and I want to display an image in that tab, with the ListView on top.
      However, the image still appears on top of my ListView.
      If I remove the tabs everything works. 
      I looked at the autoit documentation and the <GuiListView.au3> documentation , I can't figure out how to display a background image, and put on top a ListView, inside a tab. 😥
      Here is the code:
      Opt("GUIOnEventMode", 1) $Form1 = GUICreate($Titre, 700, 627, $Form1Width, $Form1Height); main window $tabulation = GUICtrlCreateTab(148,0,700,580); creating tabs $tab1=GUICtrlCreateTabItem("Tab 1"); first tab GUICtrlSetState(-1, $GUI_SHOW); this tab is selected by default $Pic1 = GUICtrlCreatePic("image.jpg", 0, 30, 700, 627) GUICtrlSetState(-1, $GUI_DISABLE). $idListview = GUICtrlCreateListView("list 1|list 2|list 3", 200, 50, 390, 200) GUISetState(@SW_SHOW) While 1     Sleep(100) WEnd Thank you in advance.

    • By DrJohn
      Hello all.  It's me again.
      I've got a ListView with an associated ImageList to display icons.  What I seem to be hung up on is how to keep the ImageList updated to match the ListView as the latter changes.  I thought it was the case that the indices of the items in the ListView and those in the ImageList just needed to match.  So, for example, if I:
      Delete an item from the ListView [_GUICtrlListView_DeleteItem()], and also delete the image at the matching index in the ImageList [_GUIImageList_Remove()]. Then add a new item to the end of the ListView [_GUICtrlListView_AddItem()], and correspondingly add an image at the end of the ImageList [_GUIImageList_AddIcon()] Shouldn't everything stay in sync?
      Here's the code I thought would work:
      #include <GUIConstantsEx.au3> #include <GuiListView.au3> #include <FontConstants.au3> #include <WindowsConstants.au3> #include <GuiImageList.au3> Test() func Test() $gui = GUICreate("Test", 400, 300) ; Create ListView $lv = _GUICtrlListView_Create($gui, "", 10, 10, 380, 240, $LVS_DEFAULT) _GUICtrlListView_AddColumn($lv, "Col1", 50) _GUICtrlListView_AddColumn($lv, "Col2", 50) for $i = 0 to 2 $s = StringFormat("%d,1", $i+1) _GUICtrlListView_AddItem($lv, $s, $i) $s = StringFormat("%d,2", $i+1) _GUICtrlListView_AddSubItem($lv, $i, $s, 1) next ; Add ImageList $img_list = _GUIImageList_Create(16, 16, 5, 3) for $i = 0 to 2 $ico = StringFormat("%d.ico", $i+1) _GUIImageList_AddIcon($img_list, $ico) next _GUICtrlListView_SetImageList($lv, $img_list, 1) ; $btn = GUICtrlCreateButton("Test", 10, 260, 60, 30) GUISetState(@SW_SHOW) HotKeySet("^q", Quit) ; Loop until the user exits. while True switch GUIGetMsg() case $GUI_EVENT_CLOSE Exit case $btn ; Remove 2nd list item and image _GUICtrlListView_DeleteItem($lv, 1) _GUIImageList_Remove($img_list, 1) ; Add new item to end of ListView $idx = _GUICtrlListView_AddItem($lv, "foo") _GUICtrlListView_AddSubItem($lv, $idx, "bar", 1) ; Add new image to end of ImageList _GUIImageList_AddIcon($img_list, "5.ico") endswitch wend GUIDelete() endfunc func Quit() Exit endfunc What seems to happen is that when the new item is added to the ListView, its icon is 1.ico (the first item in the ImageList), rather than 5.ico (the newly added item that should be at the end of the ImageList).
      Or do I need to re-create the whole ImageList any time the ListView changes?
      A zip file is attached that contains the script and also the .ico files, for easier testing.
      Thanks!
      /John
      test.zip
    • By kingjacob90
      Hi
      So I am trying to click the green button, this button is not always in the same place. So fare I am trying to click it by finding the color but there is also something else with the same color on the screen (circled in yellow) that is causing issues. Is there a way to use the Title and Class of the window (can't be just the window as there are more than one with the same name).
      How does AutoIt Info get this information?

×
×
  • Create New...