polihale Posted August 10, 2006 Share Posted August 10, 2006 Hi everyone,This is my first post. I've been using AutoIt for two years and never needed support until now (a credit to the authors). Glad I found this forum; didn't know until today it existed.My issue is refreshing images that were created with GUICtrlCreatePic. I've search this site for an answer and found lots of related issues, but I still don't know what's going on.I use GUICtrlCreatePic to draw an image. It works. Later on, I re-draw a new image over the old one, again using GUICtrlCreatePic. But the new image doesn't appear. If I minimize the application and then maximize it (forcing Windows XP to refresh it), the proper image appears.How do I tell Windows to forcibly refresh the GUI?Here is the .AU3 file along with some images for testing: test.zip packageI'm sure it's something simple. Thanks for the help.Christopher Link to comment Share on other sites More sharing options...
GaryFrost Posted August 10, 2006 Share Posted August 10, 2006 #include <GUIConstants.au3> GUICreate("Test",300,150,10,10) $ChangeButton = GuiCtrlCreateButton("Change Color",50, 50, 125, 33) $PanelColor = 1 $pic = GUICtrlCreatePic("",210,50,50,50) GUISetState() While 1 $MSG = GUIGetMsg() Select Case $MSG = $GUI_EVENT_CLOSE Exit Case $MSG = $ChangeButton $PanelColor = $PanelColor + 1 if $PanelColor = 4 then $PanelColor = 1 if $PanelColor = 1 then GUICtrlSetImage($pic, @ScriptDir & "\red.jpg") GUICtrlCreateLabel('Red ',220,110) endif if $PanelColor = 2 then GUICtrlSetImage($pic, @ScriptDir & "\grey.jpg") GUICtrlCreateLabel('Grey ',220,110) endif if $PanelColor = 3 then GUICtrlSetImage($pic, @ScriptDir & "\yellow.jpg") GUICtrlCreateLabel('Yellow',220,110) endif EndSelect Wend SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
jpm Posted August 10, 2006 Share Posted August 10, 2006 #include <GUIConstants.au3> GUICreate("Test",300,150,10,10) $ChangeButton = GuiCtrlCreateButton("Change Color",50, 50, 125, 33) $PanelColor = 1 $pic= GUICtrlCreatePic("red.jpg",210,50,50,50) GUISetState() While 1 $MSG = GUIGetMsg() Select Case $MSG = $GUI_EVENT_CLOSE Exit Case $MSG = $ChangeButton $PanelColor = $PanelColor + 1 if $PanelColor = 4 then $PanelColor = 1 if $PanelColor = 1 then GUICtrlSetImage($pic,"red.jpg") GUICtrlCreateLabel('Red ',220,110) endif if $PanelColor = 2 then GUICtrlSetImage($pic,"grey.jpg") GUICtrlCreateLabel('Grey ',220,110) endif if $PanelColor = 3 then GUICtrlSetImage($pic,"yellow.jpg") GUICtrlCreateLabel('Yellow',220,110) endif EndSelect Wend You need to setimage not to recreate it Link to comment Share on other sites More sharing options...
polihale Posted August 10, 2006 Author Share Posted August 10, 2006 I figured it was something simple like that. Thanks. Works great now. 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