Search the Community
Showing results for tags 'blink'.
Found 1 result
I have a program that has a large label acting as a count down timer. I have set the background color of the label to $GUI_BKCOLOR_TRANSPARENT. This program has a picture for a background. In the below example the gui's background color is set to yellow. Occasionally when the timer updates you can see the yellow background color in the shape of the label. i have looked at many posts about blinking labels, but the all appear to find a way around the blinking problem instead of fixing it and none of them use a background picture. Does anyone know how this problem can be fixed? Or perhaps just a work around for my situation? As you can see by my commented out code, I have tried ControlSetText and GUISetState LOCK/UNLOCK. ControlSetText results in each new number being written over whatever was in the label instead of replacing it GUISetState LOCK/UNLOCK cause the issue to happen to the whole gui instead of just the label. I have attached the background I was using. Thanks in advance. #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> Const $BKGND_FILE = "C:\Users\sjraisbe\Pictures\poker bkgd.jpg" Global $seconds = 60 $hMain = GUICreate("Timer", 800, 600, -1, -1, BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_OVERLAPPEDWINDOW,$WS_TILEDWINDOW,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS)) GUISetBkColor(0xFFFF00, $hMain) GUICtrlSetDefBkColor($GUI_BKCOLOR_TRANSPARENT, $hMain) $pic = GUICtrlCreatePic($BKGND_FILE, 0, 0, 1920, 1080) GUICtrlSetState(-1,$GUI_DISABLE) $lblTime = GUICtrlCreateLabel("01:00", 192, 222, 424, 156, $SS_CENTER) GUICtrlSetFont($lblTime, 100, 400, 0, "Arial") GUICtrlSetColor($lblTime, 0xFFFFFF) AdlibRegister("UpdateTime", 1000) GUISetState(@SW_SHOW, $hMain) While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop EndIf WEnd Func UpdateTime() ;GUISetState(@SW_LOCK) Local $sec, $min, $hr $sec = Mod($seconds, 60) $min = Mod($seconds / 60, 60) GUICtrlSetData($lblTime, StringFormat("%02i:%02i", $min, $sec)) ;ControlSetText($hMain, "", $lblTime, StringFormat("%02i:%02i", $min, $sec)) $seconds -= 1 ;GUISetState(@SW_UNLOCK) EndFunc