Подобное мерцание белым происходит чаще всего когда к элементу применен какой-нибудь битмап, и происходит не всегда, но довольно часто при скрывании элементов GUICtrlSetState(-1, $GUI_HIDE), что это и как этого можно избежать?
Даже если элементы в данный момент уже спрятаны, если применить к ним GUICtrlSetState(-1, $GUI_HIDE), то они могут так мигнуть белым.
В приложении пример где подобное наглядно видно.
Кто-нибудь помогите пожалуйста. По поиску в разных ветках форума встречается нечто похожее, но решения именно этой проблемы там найти не удалось(
Код:
#AutoIt3Wrapper_Res_File_Add=1.bmp, rt_rcdata, G1
#AutoIt3Wrapper_Res_File_Add=2.bmp, rt_rcdata, G2
#AutoIt3Wrapper_Res_File_Add=3.bmp, rt_rcdata, G3
#AutoIt3Wrapper_Res_File_Add=4.bmp, rt_rcdata, G4
#AutoIt3Wrapper_Res_File_Add=ANI1.gif, rt_rcdata, ANI1
#include "resources.au3"
#include <ButtonConstants.au3>
#include <GuiConstants.au3>
#include "GIFAnimation.au3"
;~ $hGui = GUICreate('', 330, 144, 330, 144, BitOR($WS_POPUP, $WS_CLIPCHILDREN), BitOR($WS_EX_CONTROLPARENT, $WS_EX_COMPOSITED))
$hGui = GUICreate('', 330, 144, 330, 144, $WS_POPUP, $WS_EX_CONTROLPARENT)
$PicBack1 = GUICtrlCreatePic('', 0, 0, 330, 144)
GUICtrlSetState(-1, $GUI_DISABLE)
_ResourceSetImageToCtrl($PicBack1, "G1")
if Not @Compiled Then GUICtrlSetImage(-1, "1.bmp", -1)
$B1 = GUICtrlCreateButton('', 12, 71, 131, 20, $BS_BITMAP)
_ResourceSetImageToCtrl(-1, "G2")
if Not @Compiled Then GUICtrlSetImage(-1, "2.bmp", -1)
$B2 = _GUICtrlCreateGIF(@ScriptDir & "\ANI1.gif", "", 21, 21)
if @Compiled then $B2 = _GUICtrlCreateGIF(@ScriptFullPath, "10;ANI1", 21, 21)
Dim $B[11], $KS[10][2] = [[5, 5], [50, 5], [95, 5], [140, 5], [185, 5], [5, 26], [50, 26], [95, 26], [140, 26], [185, 26]]
For $i = 0 To UBound($KS) - 1
$B[$i] = GUICtrlCreateButton('', $KS[$i][0] + 100, $KS[$i][1] + 90, 40, 18, $BS_BITMAP)
_ResourceSetImageToCtrl(-1, "G4")
If Not @Compiled Then GUICtrlSetImage(-1, "4.bmp", -1)
Next
GUISetState(@SW_SHOW, $hGui)
do
$msg = GUIGetMsg()
Switch $msg
case $B1
_ResourceSetImageToCtrl($B1, "G3")
if Not @Compiled Then GUICtrlSetImage($B1, "3.bmp", -1)
sleep(100)
_ResourceSetImageToCtrl($B1, "G2")
if Not @Compiled Then GUICtrlSetImage($B1, "2.bmp", -1)
sleep(100)
exit
EndSwitch
For $i = 0 To UBound($KS) - 1
GUICtrlSetState($B[$i], $GUI_HIDE)
Next
For $i = 0 To UBound($KS) - 1
GUICtrlSetState($B[$i], $GUI_SHOW)
Next
until $msg = -3
Вложения
Последнее редактирование: