Valnurat Posted February 19, 2016 Posted February 19, 2016 My image has a lot of small pictures with different kinds of animals. My idea is, when you press each pictures a messagebox should apear with the word of what kind of animal. How do I add an image to a GUI and how do I control the mouse to tell me what kind of picture I pressed? Yours sincerely Kenneth.
InunoTaishou Posted February 19, 2016 Posted February 19, 2016 Hmmm need more information, what have you tried? Is it one image file with different animals in it? If it's one image you can use GUICtrlCreatePic and load your image, define the areas of each animal yourself (x, y, width, height of the animal, I'd suggest an array), and when the user clicks the picture, grab the x, y coordinates of the click. Go through the array and use _WinApi_PtinRectEx to test if the click was in the area for each animal. Alternatively you can just create labels where each animal are and set an OnEvent for each label (Or a case for each label, depending on if you use GUIOnEvent mode or not). Whenever the user clicks the picture they'll click the underlying label and activate what you want to do.
BrewManNH Posted February 19, 2016 Posted February 19, 2016 I'd use the images as if they were buttons, and do something like this. #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <StaticConstants.au3> Example() Func Example() GUICreate("My Draw") Local $idTech = GUICtrlCreatePic("\AutoIt3\Examples\Helpfile\Extras\Tech.bmp", 10, 10, 100, 100) ; <<<<<<<<<<<<< Change this to the path that your AutoIt installation is in. Local $idAutoIt = GUICtrlCreatePic("\AutoIt3\Examples\Helpfile\Extras\AutoIt.bmp", 120, 10, 100, 100) ; <<<<<<<<<<<<< Change this to the path that your AutoIt installation is in. GUISetState(@SW_SHOW) Do $idMsg = GUIGetMsg() Switch $idMsg Case $idTech MsgBox($mb_systemmodal, "Clicked", "Tech clicked") Case $idAutoIt MsgBox($mb_systemmodal, "Clicked", "AutoIt clicked") EndSwitch Until $idMsg = $GUI_EVENT_CLOSE EndFunc ;==>Example If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
Valnurat Posted February 19, 2016 Author Posted February 19, 2016 I don't have much, as I don't know how to start. But yes, it is just one image with different animals in it. Yours sincerely Kenneth.
InunoTaishou Posted February 19, 2016 Posted February 19, 2016 I was bored.... This would be one way to do it, you probably don't have to get as detailed as I did to outline the animals with labels (take out the for $i = $lblPikachu loop to see where all the labels are). This won't work on all computers, my desktop resolution is 1920x1080, some may have larger or smaller resolutions. expandcollapse popup#include <WindowsConstants.au3> #include <GUIConstantsEx.au3> Global $hWndGui = GUICreate("Example", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP) Global $picImage = GUICtrlCreatePic(@ScriptDir & "\Image.jpg", 0, 0, @DesktopWidth, @DesktopHeight) Global $lblPikachu1 = GUICtrlCreateLabel("", 115, 700, 95, 50) Global $lblPikachu2 = GUICtrlCreateLabel("", 180, 675, 50, 30) Global $lblSquirtle1 = GUICtrlCreateLabel("", 315, 678, 70, 90) Global $lblSquirtle2 = GUICtrlCreateLabel("", 385, 735, 28, 25) GLobal $lblLugia1 = GUICtrlCreateLabel("", 1245, 205, 50, 50) GLobal $lblLugia2 = GUICtrlCreateLabel("", 1295, 225, 30, 20) GLobal $lblLugia3 = GUICtrlCreateLabel("", 1325, 210, 20, 20) GLobal $lblLugia4 = GUICtrlCreateLabel("", 1285, 160, 40, 35) GLobal $lblLugia5 = GUICtrlCreateLabel("", 1325, 185, 20, 20) GLobal $lblLugia6 = GUICtrlCreateLabel("", 1345, 190, 70, 95) GLobal $lblLugia7 = GUICtrlCreateLabel("", 1400, 135, 50, 70) GLobal $lblLugia8 = GUICtrlCreateLabel("", 1410, 255, 50, 22) Global $lblEevee1 = GUICtrlCreateLabel("", 605, 735, 165, 120) Global $lblEevee2 = GUICtrlCreateLabel("", 750, 720, 35, 30) Global $lblEevee3 = GUICtrlCreateLabel("", 775, 700, 30, 30) Global $lblCharizard1 = GUICtrlCreateLabel("", 1290, 650, 100, 40) Global $lblCharizard2 = GUICtrlCreateLabel("", 1315, 630, 50, 20) Global $lblCharizard3 = GUICtrlCreateLabel("", 1340, 620, 25, 10) Global $lblCharizard4 = GUICtrlCreateLabel("", 1380, 607, 50, 30) Global $lblCharizard5 = GUICtrlCreateLabel("", 1410, 635, 20, 40) Global $lblCharizard6 = GUICtrlCreateLabel("", 1430, 645, 5, 30) Global $lblCharizard7 = GUICtrlCreateLabel("", 1355, 685, 100, 75) Global $lblCharizard8 = GUICtrlCreateLabel("", 1390, 665, 150, 50) Global $lblCharizard9 = GUICtrlCreateLabel("", 1475, 625, 50, 40) Global $lblCharizard10 = GUICtrlCreateLabel("", 1320, 720, 60, 55) Global $lblCharizard11 = GUICtrlCreateLabel("", 1455, 725, 25, 55) Global $lblCharizard12 = GUICtrlCreateLabel("", 1480, 745, 20, 15) Global $lblCharizard12 = GUICtrlCreateLabel("", 1500, 715, 25, 25) Global $lblBulbasaur1 = GUICtrlCreateLabel("", 1700, 815, 150, 100) Global $lblBulbasaur2 = GUICtrlCreateLabel("", 1760, 800, 75, 15) For $i = $lblPikachu1 To $lblBulbasaur2 GUICtrlSetBkColor($i, $GUI_BKCOLOR_TRANSPARENT) Next GUICtrlSetState($picImage, $GUI_DISABLE) GUISetState(@SW_SHOW, $hWndGui) While (True) Switch (GUIGetMsg()) Case $GUI_EVENT_CLOSE ExitLoop Case $lblPikachu1 to $lblPikachu2 MsgBox("", "", "You clicked Pikachu!") Case $lblSquirtle1 to $lblSquirtle2 MsgBox("", "", "You clicked Squirtle!") Case $lblLugia1 to $lblLugia8 MsgBox("", "", "You clicked Lugia!") Case $lblEevee1 to $lblEevee3 MsgBox("", "", "You clicked Eevee!") Case $lblCharizard1 to $lblCharizard12 MsgBox("", "", "You clicked Charizard!") Case $lblBulbasaur1 to $lblBulbasaur2 MsgBox("", "", "You clicked Bulbasaur!") EndSwitch WEnd GUIDelete($hWndGui)
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