rudi Posted January 11, 2010 Share Posted January 11, 2010 Hi.From the help files I tried my luck and despetately fail.I think I got, that _GUIImageList_AddIcon() adds an image to a list, previously created using _GUIImageList_Create().But how to ADDRESS the 2nd / 3rd image of the list? From the help files I can't see it right now, sorry!I obviously miss, what exatly IS an ImageList? Elements can be added, but it's not an array...expandcollapse popup#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #include <GUIConstantsEx.au3> #include <GuiButton.au3> #include <GuiImageList.au3> ; %systemroot%\system32\shell32.dll ; 22 = search ;131 = delete ;146 = green arrow Global $hImage, $hSearch, $hDel, $hGreen, _ $BtnSearch, $BtnDel, $BtnAdd, _ $h, $w, _ $Title $hImage = _GUIImageList_Create(32, 32, 5, 3, 6) _GUIImageList_AddIcon($hImage, "shell32.dll", 22, True) _GUIImageList_AddIcon($hImage, "shell32.dll", 131, True) _GUIImageList_AddIcon($hImage, "shell32.dll", 146, True) If IsArray($hImage) Then $Title = "is an array" Else $Title = "is *NOT* an array" EndIf MsgBox(0, $Title, "Ubound of the Image List is " & UBound($hImage)) $w = 300 $h = 200 GUICreate("Manage Entries", $w, $h) GUISetState() $BtnSearch = GUICtrlCreateButton("Lookup Entry", 20, 20, $w - 40, 40) _GUICtrlButton_SetImageList($BtnSearch, $hImage) Opt("guicoordmode", 2) $BtnDel = GUICtrlCreateButton("Delete Entry", -1, 10, $w - 40, 40) _GUICtrlButton_SetImageList($BtnDel, $hImage) $BtnAdd = GUICtrlCreateButton("Add Entry", -1, 10, $w - 40, 40) _GUICtrlButton_SetImageList($BtnAdd, $hImage) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEndRegards, Rudi. Earth is flat, pigs can fly, and Nuclear Power is SAFE! Link to comment Share on other sites More sharing options...
KaFu Posted January 11, 2010 Share Posted January 11, 2010 This one explains what an Imagelist is under "Remarks": http://msdn.microsoft.com/en-us/library/system.windows.forms.imagelist.aspx And this explains the behavior of an Imagelist assigned to a button under "Remarks": http://msdn.microsoft.com/en-us/library/bb775975%28VS.85%29.aspx OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2022-Nov-26) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Feb-16) HMW - Hide my Windows (2018-Sep-16) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2023-Jun-03) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16) Link to comment Share on other sites More sharing options...
rudi Posted January 13, 2010 Author Share Posted January 13, 2010 (edited) Hi.Thanks for your reply.http://msdn.microsoft.com/en-us/library/system.windows.forms.imagelist.aspxhttp://msdn.microsoft.com/en-us/library/bb775975%28VS.85%29.aspxHm. This doesn't help me how to make use of the 2nd and 3rd element in my imagelist.Would you mind to change the script I wrote, so that just the 2nd button will display the 2nd imagelist icon?After seeing how to do so I hope, that I can sort out myself how to do it for the 3rd and every eventually following icon in the imagelist.Regards, Rudi. Edited January 13, 2010 by rudi Earth is flat, pigs can fly, and Nuclear Power is SAFE! Link to comment Share on other sites More sharing options...
ProgAndy Posted January 13, 2010 Share Posted January 13, 2010 (edited) Buttons use a special way of interpreting ImageLists. Each Button has its own imagelist. Then, the first 5 or 6 images of the imagelist belong to the different states of the button (normal, hover, pressed, focused, disable, ...). This means, you can specify one iamge for each state. To use different mages for different buttons you have to create multiple image lists. Edited January 13, 2010 by ProgAndy *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes Link to comment Share on other sites More sharing options...
rudi Posted January 14, 2010 Author Share Posted January 14, 2010 Each Button has its own imagelist. Ahhhh! Then, the first 5 or 6 images of the imagelist belong to the different states of the button (normal, hover, pressed, focused, disable, ...). Ahhhhhhh! :D Now I get what this means: enum PUSHBUTTONSTATES { PBS_NORMAL = 1, PBS_HOT = 2, PBS_PRESSED = 3, PBS_DISABLED = 4, PBS_DEFAULTED = 5, PBS_STYLUSHOT = 6, }; This means, you can specify one iamge for each state. I see. And when I just define the PBS_NORMAL, then that image propably is the "active" one, regardless of the button's state. I'll try that right now To use different mages for different buttons you have to create multiple image lists. Great, thanks, really great explanation. From the help file I had no chance to get this. Regards, Rudi. Earth is flat, pigs can fly, and Nuclear Power is SAFE! Link to comment Share on other sites More sharing options...
rudi Posted January 15, 2010 Author Share Posted January 15, 2010 (edited) Hi again. My initial task is solved now: Different icons for different buttons. Due to this here _GUICtrlButton_SetImageList() ... $hImage A handle to the image list. Should contain either a single image to be used for all states or individual images for each state listed in the following: 1 - Normal 2 - Hot 3 - Pressed 4 - Disabled 5 - Defaulted 6 - Stylus Hot (tablet computers only) ... ... I'd expect, that an image map, that's holding not just the initial image, would "service" different icons to different states of a button? This is not required for what I coded right now, but I'm interested in how to use that one as well. expandcollapse popup; %systemroot%\system32\shell32.dll ; 22 = search ;131 = delete ;146 = green arrow ;147-151 = just any different icons #AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #include <GUIConstantsEx.au3> #include <GuiButton.au3> #include <GuiImageList.au3> Global $h1Image, $h2Image, $h3Image, _ $hSearch, $hDel, $hGreen, _ $BtnSearch, $BtnDel, $BtnAdd, _ $h, $w, _ $Title $h1Image = _GUIImageList_Create(32, 32, 5, 3, 6) _GUIImageList_AddIcon($h1Image, "shell32.dll", 22, True) $h2Image = _GUIImageList_Create(32, 32, 5, 3, 6) _GUIImageList_AddIcon($h2Image, "shell32.dll", 131, True) $h3Image = _GUIImageList_Create(32, 32, 5, 3, 6) _GUIImageList_AddIcon($h3Image, "shell32.dll", 146, True) _GUIImageList_AddIcon($h3Image, "shell32.dll", 147, True) _GUIImageList_AddIcon($h3Image, "shell32.dll", 148, True) _GUIImageList_AddIcon($h3Image, "shell32.dll", 149, True) _GUIImageList_AddIcon($h3Image, "shell32.dll", 150, True) _GUIImageList_AddIcon($h3Image, "shell32.dll", 151, True) $w = 300 $h = 200 GUICreate("Manage Entries", $w, $h) GUISetState() $BtnSearch = GUICtrlCreateButton("Lookup Entry", 20, 20, $w - 40, 40) _GUICtrlButton_SetImageList($BtnSearch, $h1Image) Opt("guicoordmode", 2) $BtnDel = GUICtrlCreateButton("Delete Entry", -1, 10, $w - 40, 40) _GUICtrlButton_SetImageList($BtnDel, $h2Image) $BtnAdd = GUICtrlCreateButton("Add Entry", -1, 10, $w - 40, 40) _GUICtrlButton_SetImageList($BtnAdd, $h3Image) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd Regards, Rudi. Edited January 15, 2010 by rudi Earth is flat, pigs can fly, and Nuclear Power is SAFE! Link to comment Share on other sites More sharing options...
rudi Posted January 18, 2010 Author Share Posted January 18, 2010 Hi. Pls let me bump the 2nd question: From the help file I thought, that the images #2-#6 are fixed associated with the different states of a button. I couldn't get this working. What's my mistake? (see posting above) Regards, Rudi. Earth is flat, pigs can fly, and Nuclear Power is SAFE! Link to comment Share on other sites More sharing options...
KaFu Posted January 18, 2010 Share Posted January 18, 2010 (edited) Adjusted your example a little, this behaves as I expect. What exactly did you expect to behave different? expandcollapse popup#cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.2.0 Author: myName Script Function: Template AutoIt script. #ce ---------------------------------------------------------------------------- ; Script Start - Add your code below here #AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #include <GUIConstantsEx.au3> #include <GuiButton.au3> #include <GuiImageList.au3> Opt("guicoordmode", 2) Global $hImage, _ $Btn1, $Btn2, $Btn3, _ $h, $w $w = 300 $h = 300 GUICreate("Manage Entries", $w, $h) $Btn1 = GUICtrlCreateButton("Button1", 20, 20, $w - 40, 40) $Btn2 = GUICtrlCreateButton("Button2", -1, 20, $w - 40, 40) $Btn3 = GUICtrlCreateButton("Button3", -1, 20, $w - 40, 40) GUICtrlSetState(-1,$GUI_DISABLE) GUICtrlCreateInput("", -1, 20, $w - 40, 20) $hImage = _GUIImageList_Create(32, 32, 5, 3, 6) _GUIImageList_AddIcon($hImage, "shell32.dll", 3, True) ; 1 - Normal => Closed Folder _GUIImageList_AddIcon($hImage, "shell32.dll", 4, True) ; 2 - Hot => Open Folder ;_GUIImageList_AddIcon($hImage, "shell32.dll", 50, True) ; Empty in shell32.dll for me => "no icon" _GUIImageList_AddIcon($hImage, "shell32.dll", 128, True) ; 3 - Pressed => Music Folder _GUIImageList_AddIcon($hImage, "shell32.dll", 109, True) ; 4 - Disabled => Disabled Sign _GUIImageList_AddIcon($hImage, "shell32.dll", 129, True) ; 5 - Defaulted => Media Folder ;_GUIImageList_AddIcon($hImage, "shell32.dll", 129, True) ; 6 - Stylus Hot (tablet computers only) _GUICtrlButton_SetImageList($Btn1, $hImage) _GUICtrlButton_SetImageList($Btn2, $hImage) _GUICtrlButton_SetImageList($Btn3, $hImage) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd If you don't want to switch the icons, just assign the same icon to different states. Edited January 18, 2010 by KaFu OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2022-Nov-26) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Feb-16) HMW - Hide my Windows (2018-Sep-16) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2023-Jun-03) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16) Link to comment Share on other sites More sharing options...
rudi Posted January 25, 2010 Author Share Posted January 25, 2010 Hi.Adjusted your example a little, this behaves as I expect. What exactly did you expect to behave different?I expected, that this way the Icon should change, depending on the state of the button: "mouse over", "pressed", "Button focus", "Button disabled" ...For me also your modified example presents the "Folder" icon, independent of the current button state.Regards, Rudi. Earth is flat, pigs can fly, and Nuclear Power is SAFE! Link to comment Share on other sites More sharing options...
ProgAndy Posted January 25, 2010 Share Posted January 25, 2010 Hi.I expected, that this way the Icon should change, depending on the state of the button: "mouse over", "pressed", "Button focus", "Button disabled" ...For me also your modified example presents the "Folder" icon, independent of the current button state.Regards, Rudi.Th different icons for different button states work only when visual styles are enabled. Otherwise, the image is always the 'normal' image. *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes Link to comment Share on other sites More sharing options...
KaFu Posted January 25, 2010 Share Posted January 25, 2010 Th different icons for different button states work only when visual styles are enabled. Otherwise, the image is always the 'normal' image.You live and you learn ... OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2022-Nov-26) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Feb-16) HMW - Hide my Windows (2018-Sep-16) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2023-Jun-03) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16) Link to comment Share on other sites More sharing options...
rudi Posted January 27, 2010 Author Share Posted January 27, 2010 Hi. You live and you learn ... Not fast enough (the learning. Living speed is fine ) so that throws the next question: Howto enable visual styles: http://msdn.microsoft.com/en-us/library/5d1acks5(VS.80).aspx doesn't help me. Autoit Help: Some hits for these[1] topics, but I defenitely don't get it right now: So how to enable visual styles to make use of the full capacity these imagemaps offer? Regards, Rudi. [1] these topics didn't help me: 1.) "User Defined Function Reference" -> GUIToolTip_SetWindowTheme: Sets the visual style (I don't want a tooltip) 2.) "GUI Control Styles" -> $TCS_RIGHT (not available, if visual styles are enabled) 3.) "_GUICtrlTab_Create" -> same as 1.) 4.) "User Defined Function Reference" -> "_GUICtrlToolbar_SetWindowTheme" -> confusing. 5.) -"- -> "$tagMargins" -> Defines the margins of windows that have visual styles applied 6.) Keyword Reference -> $tagMargins (same as 5.) Earth is flat, pigs can fly, and Nuclear Power is SAFE! Link to comment Share on other sites More sharing options...
ProgAndy Posted January 28, 2010 Share Posted January 28, 2010 You are not able to enable it, this must be done by the user since this is an OS-setting. You can only disable the style for (parts of) your script. You could try to automate the task of enabling visual styles for the OS, but this would affect the whole UI. *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes Link to comment Share on other sites More sharing options...
KaFu Posted January 28, 2010 Share Posted January 28, 2010 http://msdn.microsoft.com/en-us/library/y6kzhf8d%28VS.80%29.aspxWith Visual Styles (also known as Windows XP Themes) Windows XP introduced a new look and feel to the Windows user interface, with controls that have rounded corners and that change color when you pause your mouse over them.Visual styles are enabled by default.What OS are you running on ? OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2022-Nov-26) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Feb-16) HMW - Hide my Windows (2018-Sep-16) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2023-Jun-03) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16) Link to comment Share on other sites More sharing options...
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