chelo32 Posted January 1, 2020 Posted January 1, 2020 I am having problems with GUIGetCursorInfo I can not get a mouse over the Checkbox to change an image, the code works but sometimes it locks and the Checkbox flashes, if anyone has any idea I will appreciate it. I am not a programmer but I need to make a kind of menu. Sorry for my bad English I speak Spanish expandcollapse popup#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <ListViewConstants.au3> #include <EditConstants.au3> #include <GUIConstants.au3> ;#include <ColorConstants.au3> $Form1 = GUICreate("Form1", 615, 437, 192, 124) GUISetBkColor(0x7a7a7a) $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 40, 56, 97, 13) $Checkbox2 = GUICtrlCreateCheckbox("Checkbox1", 40, 80, 97, 13) $Checkbox3 = GUICtrlCreateCheckbox("Checkbox1", 40, 104, 97, 13) $Checkbox4 = GUICtrlCreateCheckbox("Checkbox1", 40, 128, 97, 13) $Checkbox5 = GUICtrlCreateCheckbox("Checkbox1", 40, 152, 97, 13) $Checkbox6 = GUICtrlCreateCheckbox("Checkbox1", 40, 176, 97, 33) $Checkbox7 = GUICtrlCreateCheckbox("Checkbox1", 40, 200, 97, 33) $Checkbox8 = GUICtrlCreateCheckbox("Checkbox1", 40, 224, 97, 33) $Pic1 = GUICtrlCreatePic(@ScriptDir & "\0.jpg", 360, 64, 217, 249) $Edit1 = GUICtrlCreateEdit("", 160, 64, 140, 100, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY), 0) GUICtrlSetData(-1, StringFormat("EDIT1\r\nASDFASDASDSADSAAS\r\nSADASDAS\r\nASDSADSA")) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") GUICtrlSetBkColor(-1, 0xFFFFFF) ;GUICtrlSetCursor (-1, 2) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch _Imagen() If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then Sleep(2000) Exit EndIf WEnd Func _Imagen() $aCInfo = GUIGetCursorInfo($Form1) If $aCInfo[4] = $Checkbox1 Then GUICtrlSetData($Edit1, StringFormat("EDIT1\111111111")) GUICtrlSetImage($Pic1, @ScriptDir & "\1.bmp") GUICtrlSetColor($Checkbox2, 0x000000) GUICtrlSetColor($Checkbox3, 0x000000) GUICtrlSetColor($Checkbox4, 0x000000) GUICtrlSetColor($Checkbox5, 0x000000) GUICtrlSetColor($Checkbox1, 0x00FF00) EndIf If $aCInfo[4] = $Checkbox2 Then GUICtrlSetImage($Pic1, @ScriptDir & "\2.bmp") GUICtrlSetData($Edit1, StringFormat("EDIT1\2222222")) GUICtrlSetColor($Checkbox3, 0x000000) GUICtrlSetColor($Checkbox4, 0x000000) GUICtrlSetColor($Checkbox5, 0x000000) GUICtrlSetColor($Checkbox1, 0x000000) GUICtrlSetColor($Checkbox2, 0x00FF00) EndIf If $aCInfo[4] = $Checkbox3 Then GUICtrlSetImage($Pic1, @ScriptDir & "\3.bmp") GUICtrlSetData($Edit1, StringFormat("EDIT1\33333333")) GUICtrlSetColor($Checkbox2, 0x000000) GUICtrlSetColor($Checkbox4, 0x000000) GUICtrlSetColor($Checkbox5, 0x000000) GUICtrlSetColor($Checkbox1, 0x000000) GUICtrlSetColor($Checkbox3, 0x00FF00) EndIf If $aCInfo[4] = $Checkbox4 Then GUICtrlSetImage($Pic1, @ScriptDir & "\4.jpg") GUICtrlSetData($Edit1, StringFormat("EDIT1\4444444")) GUICtrlSetColor($Checkbox3, 0x000000) GUICtrlSetColor($Checkbox2, 0x000000) GUICtrlSetColor($Checkbox5, 0x000000) GUICtrlSetColor($Checkbox1, 0x000000) GUICtrlSetColor($Checkbox4, 0x00FF00) EndIf If $aCInfo[4] = $Checkbox5 Then GUICtrlSetImage($Pic1, @ScriptDir & "\5.jpg") GUICtrlSetData($Edit1, StringFormat("EDIT1\555555555")) GUICtrlSetColor($Checkbox3, 0x000000) GUICtrlSetColor($Checkbox2, 0x000000) GUICtrlSetColor($Checkbox4, 0x000000) GUICtrlSetColor($Checkbox1, 0x000000) GUICtrlSetColor($Checkbox5, 0x00FF00) EndIf EndFunc GUIGetCursorInfo.rar
Subz Posted January 1, 2020 Posted January 1, 2020 (edited) Just use AdLibRegister after GuiSetState and remove calling _Imagen from the loop, I would also recommend checking to see if the $aCInfo[4] has changed, basic example: expandcollapse popup#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <ListViewConstants.au3> #include <EditConstants.au3> #include <GUIConstants.au3> Global $g_iCInfo = Null DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 1) Global $g_hForm = GUICreate("Form1", 615, 437, 192, 124) GUISetBkColor(0x7a7a7a) Global $g_idCheckbox1 = GUICtrlCreateCheckbox("Checkbox1", 40, 56, 97, 13) Global $g_idCheckbox2 = GUICtrlCreateCheckbox("Checkbox2", 40, 80, 97, 13) Global $g_idCheckbox3 = GUICtrlCreateCheckbox("Checkbox3", 40, 104, 97, 13) Global $g_idCheckbox4 = GUICtrlCreateCheckbox("Checkbox4", 40, 128, 97, 13) Global $g_idCheckbox5 = GUICtrlCreateCheckbox("Checkbox5", 40, 152, 97, 13) Global $g_idCheckbox6 = GUICtrlCreateCheckbox("Checkbox6", 40, 176, 97, 33) Global $g_idCheckbox7 = GUICtrlCreateCheckbox("Checkbox7", 40, 200, 97, 33) Global $g_idCheckbox8 = GUICtrlCreateCheckbox("Checkbox8", 40, 224, 97, 33) Global $g_idPic = GUICtrlCreatePic(@ScriptDir & "\0.jpg", 360, 64, 217, 249) Global $g_idEdit = GUICtrlCreateEdit("", 160, 64, 140, 100, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY), 0) GUICtrlSetData(-1, StringFormat("EDIT1\r\nASDFASDASDSADSAAS\r\nSADASDAS\r\nASDSADSA")) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") GUICtrlSetBkColor(-1, 0xFFFFFF) GUISetState(@SW_SHOW) AdlibRegister("_Imagen", 100) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func _Imagen() Local $aCInfo = GUIGetCursorInfo($g_hForm) If $aCInfo[4] = $g_iCInfo Then Return Switch $aCInfo[4] Case $g_idCheckbox1 GUICtrlSetData($g_idEdit, StringFormat("EDIT1\111111111")) GUICtrlSetImage($g_idPic, @ScriptDir & "\1.bmp") GUICtrlSetColor($g_idCheckbox2, 0x000000) GUICtrlSetColor($g_idCheckbox3, 0x000000) GUICtrlSetColor($g_idCheckbox4, 0x000000) GUICtrlSetColor($g_idCheckbox5, 0x000000) GUICtrlSetColor($g_idCheckbox1, 0x00FF00) Case $g_idCheckbox2 GUICtrlSetImage($g_idPic, @ScriptDir & "\2.bmp") GUICtrlSetData($g_idEdit, StringFormat("EDIT1\2222222")) GUICtrlSetColor($g_idCheckbox3, 0x000000) GUICtrlSetColor($g_idCheckbox4, 0x000000) GUICtrlSetColor($g_idCheckbox5, 0x000000) GUICtrlSetColor($g_idCheckbox1, 0x000000) GUICtrlSetColor($g_idCheckbox2, 0x00FF00) Case $g_idCheckbox3 GUICtrlSetImage($g_idPic, @ScriptDir & "\3.bmp") GUICtrlSetData($g_idEdit, StringFormat("EDIT1\33333333")) GUICtrlSetColor($g_idCheckbox2, 0x000000) GUICtrlSetColor($g_idCheckbox4, 0x000000) GUICtrlSetColor($g_idCheckbox5, 0x000000) GUICtrlSetColor($g_idCheckbox1, 0x000000) GUICtrlSetColor($g_idCheckbox3, 0x00FF00) Case $g_idCheckbox4 GUICtrlSetImage($g_idPic, @ScriptDir & "\4.jpg") GUICtrlSetData($g_idEdit, StringFormat("EDIT1\4444444")) GUICtrlSetColor($g_idCheckbox3, 0x000000) GUICtrlSetColor($g_idCheckbox2, 0x000000) GUICtrlSetColor($g_idCheckbox5, 0x000000) GUICtrlSetColor($g_idCheckbox1, 0x000000) GUICtrlSetColor($g_idCheckbox4, 0x00FF00) Case $g_idCheckbox5 GUICtrlSetImage($g_idPic, @ScriptDir & "\5.jpg") GUICtrlSetData($g_idEdit, StringFormat("EDIT1\555555555")) GUICtrlSetColor($g_idCheckbox3, 0x000000) GUICtrlSetColor($g_idCheckbox2, 0x000000) GUICtrlSetColor($g_idCheckbox4, 0x000000) GUICtrlSetColor($g_idCheckbox1, 0x000000) GUICtrlSetColor($g_idCheckbox5, 0x00FF00) EndSwitch $g_iCInfo = $aCInfo[4] Return EndFunc Edited January 1, 2020 by Subz chelo32 1
Nine Posted January 1, 2020 Posted January 1, 2020 (edited) The code was not working for me. Setting color to checkbox the way you have done it was not working. It's the way I have setup my general window theme. Anyway, I ended up rewriting the code (if you are interested) : expandcollapse popup#include <GUIConstants.au3> #include <Constants.au3> #include <String.au3> #include <WinAPITheme.au3> Global $g_hForm = GUICreate("Form1", 615, 437, 192, 124) GUISetBkColor(0x7a7a7a) Global $g_idCheckbox[8] For $i = 0 To UBound($g_idCheckbox) - 1 $g_idCheckbox[$i] = GUICtrlCreateCheckbox("Checkbox" & $i + 1, 40, 56 + $i * 24, 97, 13) _WinAPI_SetWindowTheme (GUICtrlGetHandle($g_idCheckbox[$i]), "0", "0") Next Global $g_idPic = GUICtrlCreatePic(@ScriptDir & "\0.jpg", 360, 64, 217, 249) Global $g_idEdit = GUICtrlCreateEdit("", 160, 64, 140, 100, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY), 0) GUICtrlSetData(-1, StringFormat("EDIT1\r\nASDFASDASDSADSAAS\r\nSADASDAS\r\nASDSADSA")) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") GUICtrlSetBkColor(-1, 0xFFFFFF) GUISetState(@SW_SHOW) Local $aCInfo, $g_iCInfo = 0 While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch $aCInfo = GUIGetCursorInfo($g_hForm) If $aCInfo[4] <> $g_iCInfo And $aCInfo[4] >= $g_idCheckbox[0] And $aCInfo[4] <= $g_idCheckbox[UBound($g_idCheckbox)-1] Then _Imagen($aCInfo[4], $g_idCheckbox) $g_iCInfo = $aCInfo[4] EndIf WEnd Func _Imagen($iId, ByRef $aId) ConsoleWrite ($iId & @CRLF) Local $iNum = $iId - $aId[0] + 1 GUICtrlSetData($g_idEdit, StringFormat("EDIT1\") & _StringRepeat($iNum, 8)) GUICtrlSetImage($g_idPic, @ScriptDir & "\" & $iNum & ".bmp") For $i = 0 To UBound($aId) - 1 GUICtrlSetColor($aId[$i], ($aId[$i] = $iId ? 0x00FF00 : 0x000000)) Next EndFunc ;==>_Imagen I still do not understand your stringFormat thing tho Edited January 1, 2020 by Nine “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Debug Messages Monitor UDF Screen Scraping Multi-Threading Made Easy
chelo32 Posted January 2, 2020 Author Posted January 2, 2020 19 hours ago, Subz said: Just use AdLibRegister after GuiSetState and remove calling _Imagen from the loop, I would also recommend checking to see if the $aCInfo[4] has changed, basic example: expandcollapse popup#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <ListViewConstants.au3> #include <EditConstants.au3> #include <GUIConstants.au3> Global $g_iCInfo = Null DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 1) Global $g_hForm = GUICreate("Form1", 615, 437, 192, 124) GUISetBkColor(0x7a7a7a) Global $g_idCheckbox1 = GUICtrlCreateCheckbox("Checkbox1", 40, 56, 97, 13) Global $g_idCheckbox2 = GUICtrlCreateCheckbox("Checkbox2", 40, 80, 97, 13) Global $g_idCheckbox3 = GUICtrlCreateCheckbox("Checkbox3", 40, 104, 97, 13) Global $g_idCheckbox4 = GUICtrlCreateCheckbox("Checkbox4", 40, 128, 97, 13) Global $g_idCheckbox5 = GUICtrlCreateCheckbox("Checkbox5", 40, 152, 97, 13) Global $g_idCheckbox6 = GUICtrlCreateCheckbox("Checkbox6", 40, 176, 97, 33) Global $g_idCheckbox7 = GUICtrlCreateCheckbox("Checkbox7", 40, 200, 97, 33) Global $g_idCheckbox8 = GUICtrlCreateCheckbox("Checkbox8", 40, 224, 97, 33) Global $g_idPic = GUICtrlCreatePic(@ScriptDir & "\0.jpg", 360, 64, 217, 249) Global $g_idEdit = GUICtrlCreateEdit("", 160, 64, 140, 100, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY), 0) GUICtrlSetData(-1, StringFormat("EDIT1\r\nASDFASDASDSADSAAS\r\nSADASDAS\r\nASDSADSA")) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") GUICtrlSetBkColor(-1, 0xFFFFFF) GUISetState(@SW_SHOW) AdlibRegister("_Imagen", 100) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func _Imagen() Local $aCInfo = GUIGetCursorInfo($g_hForm) If $aCInfo[4] = $g_iCInfo Then Return Switch $aCInfo[4] Case $g_idCheckbox1 GUICtrlSetData($g_idEdit, StringFormat("EDIT1\111111111")) GUICtrlSetImage($g_idPic, @ScriptDir & "\1.bmp") GUICtrlSetColor($g_idCheckbox2, 0x000000) GUICtrlSetColor($g_idCheckbox3, 0x000000) GUICtrlSetColor($g_idCheckbox4, 0x000000) GUICtrlSetColor($g_idCheckbox5, 0x000000) GUICtrlSetColor($g_idCheckbox1, 0x00FF00) Case $g_idCheckbox2 GUICtrlSetImage($g_idPic, @ScriptDir & "\2.bmp") GUICtrlSetData($g_idEdit, StringFormat("EDIT1\2222222")) GUICtrlSetColor($g_idCheckbox3, 0x000000) GUICtrlSetColor($g_idCheckbox4, 0x000000) GUICtrlSetColor($g_idCheckbox5, 0x000000) GUICtrlSetColor($g_idCheckbox1, 0x000000) GUICtrlSetColor($g_idCheckbox2, 0x00FF00) Case $g_idCheckbox3 GUICtrlSetImage($g_idPic, @ScriptDir & "\3.bmp") GUICtrlSetData($g_idEdit, StringFormat("EDIT1\33333333")) GUICtrlSetColor($g_idCheckbox2, 0x000000) GUICtrlSetColor($g_idCheckbox4, 0x000000) GUICtrlSetColor($g_idCheckbox5, 0x000000) GUICtrlSetColor($g_idCheckbox1, 0x000000) GUICtrlSetColor($g_idCheckbox3, 0x00FF00) Case $g_idCheckbox4 GUICtrlSetImage($g_idPic, @ScriptDir & "\4.jpg") GUICtrlSetData($g_idEdit, StringFormat("EDIT1\4444444")) GUICtrlSetColor($g_idCheckbox3, 0x000000) GUICtrlSetColor($g_idCheckbox2, 0x000000) GUICtrlSetColor($g_idCheckbox5, 0x000000) GUICtrlSetColor($g_idCheckbox1, 0x000000) GUICtrlSetColor($g_idCheckbox4, 0x00FF00) Case $g_idCheckbox5 GUICtrlSetImage($g_idPic, @ScriptDir & "\5.jpg") GUICtrlSetData($g_idEdit, StringFormat("EDIT1\555555555")) GUICtrlSetColor($g_idCheckbox3, 0x000000) GUICtrlSetColor($g_idCheckbox2, 0x000000) GUICtrlSetColor($g_idCheckbox4, 0x000000) GUICtrlSetColor($g_idCheckbox1, 0x000000) GUICtrlSetColor($g_idCheckbox5, 0x00FF00) EndSwitch $g_iCInfo = $aCInfo[4] Return EndFunc thanks is what i was looking for
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