Belini Posted October 28, 2015 Posted October 28, 2015 (edited) I need to show a label on a PC but the label flashes when it is updated, I can upgrade without blinking using $WS_EX_COMPOSITED without pic below but put the PIC the label does not appear, does anyone know how to solve?EXAMPLE:expandcollapse popup#include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> gui_1(); ;If I do not use the $ WS_EX_COMPOSITED flashes the label. gui_2(); If I use the $ WS_EX_COMPOSITED without PIC under the label does not blink. gui_3(); If I use the $ WS_EX_COMPOSITED and put pic below does not show the label. Func gui_1() Local $Form1 = GUICreate("Form1", 194, 137, 414, 452) Local $pic = GUICtrlCreatePic(_background(True), 0, 0, 194, 137) Local $Label1 = GUICtrlCreateLabel("100", 0, 0, 194, 137, $SS_CENTER + $SS_CENTERIMAGE) GUICtrlSetColor(-1, 0xffffff) GUICtrlSetBkColor(-1, 0x000000) GUICtrlSetFont(-1, 70, 800, 0, "Arial Black") GUISetState(@SW_SHOW) For $i = 100 To 200 Sleep(20) GUICtrlSetData($Label1, $i) Next EndFunc ;==>gui_1 Func gui_2() Local $Form1 = GUICreate("Form1", 194, 137, 414, 452, Default, $WS_EX_COMPOSITED) Local $Label1 = GUICtrlCreateLabel("100", 0, 0, 194, 137, $SS_CENTER + $SS_CENTERIMAGE) GUICtrlSetColor(-1, 0xffffff) GUICtrlSetBkColor(-1, 0x000000) GUICtrlSetFont(-1, 70, 800, 0, "Arial Black") GUISetState(@SW_SHOW) For $i = 200 To 300 Sleep(20) GUICtrlSetData($Label1, $i) Next GUIDelete() EndFunc ;==>gui_2 Func gui_3() Local $Form1 = GUICreate("Form1", 194, 137, 414, 452, Default, $WS_EX_COMPOSITED) Local $pic = GUICtrlCreatePic(_background(True), 0, 0, 194, 137) Local $Label1 = GUICtrlCreateLabel("100", 0, 0, 194, 137, $SS_CENTER + $SS_CENTERIMAGE) GUICtrlSetColor(-1, 0xffffff) GUICtrlSetBkColor(-1, 0x000000) GUICtrlSetFont(-1, 70, 800, 0, "Arial Black") GUISetState(@SW_SHOW) For $i = 300 To 400 Sleep(20) GUICtrlSetData($Label1, $i) Next Exit EndFunc ;==>gui_3 While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd ; #INDEX# ======================================================================================================================= ; Title .........: _background() ; AutoIt Version.: 3.3.8.1 ; Language.......: Português (Brasil) - 0416(PTB) ; Description ...: Compressed file embedded ; Author ........: BELINI ; =============================================================================================================================== ; #CURRENT# ===================================================================================================================== ; _background() ; =============================================================================================================================== ; #INTERNAL_USE_ONLY# =========================================================================================================== ; __background() ; _LZNTDecompress renamed! ; __backgroundB64() ; _Base64 renamed! ; =============================================================================================================================== ; #VARIABLES# =================================================================================================================== ; =============================================================================================================================== ; #FUNCTION# ==================================================================================================================== ; Name ..........: _background() ; Description ...: Compressed file embedded in your .au3 file ; Syntax ........: _background( [ lToSave [, sPath [, lExecute ]]] ) ; Parameters ....: lToSave - [optional] If True, save the file, else, return binary data. Default is False. ; sPath - [optional] The path of the file to be save. Default is @TempDir ; lExecute - [optional] Flag to execute file saved. Default is False ; Return values .: Success - Returns decompressed fundo.bmp binary data or saved. ; Failure - Returns 0 and set @error to 1. ; Author(s) .....: João Carlos (Jscript FROM Brazil) ; Modified ......: ; Remarks .......: This function uses _LZNTDecompress() and _Base64Decode() by trancexx. ; Related .......: ; Link ..........: ; Example .......; _background() ; =============================================================================================================================== Func _background($lToSave = False, $sPath = @TempDir, $lExecute = False) Local $hFileHwnd, $bData, $sFileName = $sPath & "\fundo.bmp" ; Original: D:\JukeBel\00 Arquivos úteis\fundo.bmp $bData = "LrGgQk0cDQACADYAUIooADAhBBgBABgASAAAAOYMAAASC8cDDAJAAhD/AABdCF5g/wDA/2Nncf9KXxD/GP8Yf7b/QMinVXYK/0r/Sn8lfww/BP9fJP0Qfwx/DH8MPQR/DH8M/38Mfx37EP8H/xj/GP8Y/xD//xg/Ff8Q+RB/FD8QPRB/DP9/DH8MHwIfAR8BHwEfARUB/38MHwEfAR8BHwEXAb8BHwH/HwEfAR8BFwG/AR8BHwEfAf8fARcBvwEfAR8BHwEfARcB/78BHwEfAR8BHwEXAb8BHwH/HwEfAR8BFwG/AR8BHwEfAf8fARcBvwEfAR8BHwEfARcB/78BHwEfAR8BHwEXAb8BHwH/HwEfAR8BFwG/AR8BHwEfAf8fARcBvwEfAR8BHwEfARcBAAA=" If $lToSave Then $hFileHwnd = FileOpen($sFileName, 10) If @error Then Return SetError(1, 0, 0) FileWrite($hFileHwnd, __background(__backgroundB64($bData))) FileClose($hFileHwnd) If $lExecute Then RunWait($sFileName, "") FileDelete($sFileName) Return 1 EndIf If FileExists($sFileName) Then Return $sFileName Else Return __background(__backgroundB64($bData)) EndIf Return SetError(1, 0, 0) EndFunc ;==>_background ; #INTERNAL_USE_ONLY# =========================================================================================================== ; Name...........: __backgroundB64 ; Description ...: Base64 decode input data. ; Syntax.........: __backgroundB64($bBinary) ; Parameters ....: $sInput - String data to decode ; Return values .: Success - Returns decode binary data. ; - Sets @error to 0 ; Failure - Returns empty string and sets @error: ; |1 - Error calculating the length of the buffer needed. ; |2 - Error decoding. ; Author ........: trancexx ; Modified ......: João Carlos (Jscript FROM Brazil) ; Related .......: _Base64Encode() ; =============================================================================================================================== Func __backgroundB64($sInput) Local $struct = DllStructCreate("int") Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", _ "str", $sInput, _ "int", 0, _ "int", 1, _ "ptr", 0, _ "ptr", DllStructGetPtr($struct, 1), _ "ptr", 0, _ "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(1, 0, "") ; error calculating the length of the buffer needed EndIf Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]") $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", _ "str", $sInput, _ "int", 0, _ "int", 1, _ "ptr", DllStructGetPtr($a), _ "ptr", DllStructGetPtr($struct, 1), _ "ptr", 0, _ "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(2, 0, ""); error decoding EndIf Return DllStructGetData($a, 1) EndFunc ;==>__backgroundB64 ; #INTERNAL_USE_ONLY# =========================================================================================================== ; Name...........: __background ; Original Name..: _LZNTDecompress ; Description ...: Decompresses input data. ; Syntax.........: __background($bBinary) ; Parameters ....: $vInput - Binary data to decompress. ; Return values .: Success - Returns decompressed binary data. ; - Sets @error to 0 ; Failure - Returns empty string and sets @error: ; |1 - Error decompressing. ; Author ........: trancexx ; Related .......: _LZNTCompress ; Link ..........; http://msdn.microsoft.com/en-us/library/bb981784.aspx ; =============================================================================================================================== Func __background($bBinary) $bBinary = Binary($bBinary) Local $tInput = DllStructCreate("byte[" & BinaryLen($bBinary) & "]") DllStructSetData($tInput, 1, $bBinary) Local $tBuffer = DllStructCreate("byte[" & 16 * DllStructGetSize($tInput) & "]") ; initially oversizing buffer Local $a_Call = DllCall("ntdll.dll", "int", "RtlDecompressBuffer", _ "ushort", 2, _ "ptr", DllStructGetPtr($tBuffer), _ "dword", DllStructGetSize($tBuffer), _ "ptr", DllStructGetPtr($tInput), _ "dword", DllStructGetSize($tInput), _ "dword*", 0) If @error Or $a_Call[0] Then Return SetError(1, 0, "") ; error decompressing EndIf Local $tOutput = DllStructCreate("byte[" & $a_Call[6] & "]", DllStructGetPtr($tBuffer)) Return SetError(0, 0, DllStructGetData($tOutput, 1)) EndFunc ;==>__background Edited November 3, 2015 by Belini My Codes: Virtual Key Code UDF: http://www.autoitscript.com/forum/topic/138246-virtual-key-code-udf/ GuiSplashTextOn.au3: http://www.autoitscript.com/forum/topic/143542-guisplashtexton-udf/ Menu versions of Autoit: http://www.autoitscript.com/forum/topic/137435-menu-versions-of-autoit/#entry962011 Selects first folder of letters: ]http://www.autoitscript.com/forum/topic/144780-select-folders-by-letter/#entry1021708/spoiler] List files and folders with long addresses.: http://www.autoitscript.com/forum/topic/144910-list-files-and-folders-with-long-addresses/#entry102 2926 Program JUKEBOX made in Autoit:some functions:http://www.youtube.com/watch?v=WJ2tC2fD5Qs Navigation to search:http://www.youtube.com/watch?v=lblwOFIbgtQ
UEZ Posted October 28, 2015 Posted October 28, 2015 Use GDI+ to draw the string and copy the bitmap to the pic control. There are several examples flying around. Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
Belini Posted October 28, 2015 Author Posted October 28, 2015 (edited) I did as you said and it worked but as I have little knowledge about GDI can not tell if it was the best solution, please see if what I did is correct.expandcollapse popup#include <GUIConstantsEx.au3> #include <GDIPlus.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> gui() Func gui() Local $hGUI, $hGraphic Local $hGUI = GUICreate("Form", 194, 137, -1, -1, Default, $WS_EX_COMPOSITED) _GDIPlus_Startup() $hBitmap = _GDIPlus_BitmapCreateFromFile(_background(True)) $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI) _GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 0, 0) Local $Label1 = GUICtrlCreateLabel("100", 0, 0, 194, 137, $SS_CENTER + $SS_CENTERIMAGE) GUICtrlSetColor(-1, 0xffffff) GUICtrlSetBkColor(-1, 0x000000) GUICtrlSetFont(-1, 70, 800, 0, "Arial Black") GUISetState(@SW_SHOW) For $i = 100 To 200 Sleep(20) GUICtrlSetData($Label1, $i) Next ; Clean up resources _GDIPlus_GraphicsDispose($hGraphic) _GDIPlus_BitmapDispose($hBitmap) ; Shut down GDI+ library _GDIPlus_Shutdown() Exit EndFunc ;==>gui_3 While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd ; #INDEX# ======================================================================================================================= ; Title .........: _background() ; AutoIt Version.: 3.3.8.1 ; Language.......: Português (Brasil) - 0416(PTB) ; Description ...: Compressed file embedded ; Author ........: BELINI ; =============================================================================================================================== ; #CURRENT# ===================================================================================================================== ; _background() ; =============================================================================================================================== ; #INTERNAL_USE_ONLY# =========================================================================================================== ; __background() ; _LZNTDecompress renamed! ; __backgroundB64() ; _Base64 renamed! ; =============================================================================================================================== ; #VARIABLES# =================================================================================================================== ; =============================================================================================================================== ; #FUNCTION# ==================================================================================================================== ; Name ..........: _background() ; Description ...: Compressed file embedded in your .au3 file ; Syntax ........: _background( [ lToSave [, sPath [, lExecute ]]] ) ; Parameters ....: lToSave - [optional] If True, save the file, else, return binary data. Default is False. ; sPath - [optional] The path of the file to be save. Default is @TempDir ; lExecute - [optional] Flag to execute file saved. Default is False ; Return values .: Success - Returns decompressed fundo.bmp binary data or saved. ; Failure - Returns 0 and set @error to 1. ; Author(s) .....: João Carlos (Jscript FROM Brazil) ; Modified ......: ; Remarks .......: This function uses _LZNTDecompress() and _Base64Decode() by trancexx. ; Related .......: ; Link ..........: ; Example .......; _background() ; =============================================================================================================================== Func _background($lToSave = False, $sPath = @TempDir, $lExecute = False) Local $hFileHwnd, $bData, $sFileName = $sPath & "\fundo.bmp" ; Original: D:\JukeBel\00 Arquivos úteis\fundo.bmp $bData = "LrGgQk0cDQACADYAUIooADAhBBgBABgASAAAAOYMAAASC8cDDAJAAhD/AABdCF5g/wDA/2Nncf9KXxD/GP8Yf7b/QMinVXYK/0r/Sn8lfww/BP9fJP0Qfwx/DH8MPQR/DH8M/38Mfx37EP8H/xj/GP8Y/xD//xg/Ff8Q+RB/FD8QPRB/DP9/DH8MHwIfAR8BHwEfARUB/38MHwEfAR8BHwEXAb8BHwH/HwEfAR8BFwG/AR8BHwEfAf8fARcBvwEfAR8BHwEfARcB/78BHwEfAR8BHwEXAb8BHwH/HwEfAR8BFwG/AR8BHwEfAf8fARcBvwEfAR8BHwEfARcB/78BHwEfAR8BHwEXAb8BHwH/HwEfAR8BFwG/AR8BHwEfAf8fARcBvwEfAR8BHwEfARcBAAA=" If $lToSave Then $hFileHwnd = FileOpen($sFileName, 10) If @error Then Return SetError(1, 0, 0) FileWrite($hFileHwnd, __background(__backgroundB64($bData))) FileClose($hFileHwnd) If $lExecute Then RunWait($sFileName, "") FileDelete($sFileName) Return 1 EndIf If FileExists($sFileName) Then Return $sFileName Else Return __background(__backgroundB64($bData)) EndIf Return SetError(1, 0, 0) EndFunc ;==>_background ; #INTERNAL_USE_ONLY# =========================================================================================================== ; Name...........: __backgroundB64 ; Description ...: Base64 decode input data. ; Syntax.........: __backgroundB64($bBinary) ; Parameters ....: $sInput - String data to decode ; Return values .: Success - Returns decode binary data. ; - Sets @error to 0 ; Failure - Returns empty string and sets @error: ; |1 - Error calculating the length of the buffer needed. ; |2 - Error decoding. ; Author ........: trancexx ; Modified ......: João Carlos (Jscript FROM Brazil) ; Related .......: _Base64Encode() ; =============================================================================================================================== Func __backgroundB64($sInput) Local $struct = DllStructCreate("int") Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", _ "str", $sInput, _ "int", 0, _ "int", 1, _ "ptr", 0, _ "ptr", DllStructGetPtr($struct, 1), _ "ptr", 0, _ "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(1, 0, "") ; error calculating the length of the buffer needed EndIf Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]") $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", _ "str", $sInput, _ "int", 0, _ "int", 1, _ "ptr", DllStructGetPtr($a), _ "ptr", DllStructGetPtr($struct, 1), _ "ptr", 0, _ "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(2, 0, ""); error decoding EndIf Return DllStructGetData($a, 1) EndFunc ;==>__backgroundB64 ; #INTERNAL_USE_ONLY# =========================================================================================================== ; Name...........: __background ; Original Name..: _LZNTDecompress ; Description ...: Decompresses input data. ; Syntax.........: __background($bBinary) ; Parameters ....: $vInput - Binary data to decompress. ; Return values .: Success - Returns decompressed binary data. ; - Sets @error to 0 ; Failure - Returns empty string and sets @error: ; |1 - Error decompressing. ; Author ........: trancexx ; Related .......: _LZNTCompress ; Link ..........; http://msdn.microsoft.com/en-us/library/bb981784.aspx ; =============================================================================================================================== Func __background($bBinary) $bBinary = Binary($bBinary) Local $tInput = DllStructCreate("byte[" & BinaryLen($bBinary) & "]") DllStructSetData($tInput, 1, $bBinary) Local $tBuffer = DllStructCreate("byte[" & 16 * DllStructGetSize($tInput) & "]") ; initially oversizing buffer Local $a_Call = DllCall("ntdll.dll", "int", "RtlDecompressBuffer", _ "ushort", 2, _ "ptr", DllStructGetPtr($tBuffer), _ "dword", DllStructGetSize($tBuffer), _ "ptr", DllStructGetPtr($tInput), _ "dword", DllStructGetSize($tInput), _ "dword*", 0) If @error Or $a_Call[0] Then Return SetError(1, 0, "") ; error decompressing EndIf Local $tOutput = DllStructCreate("byte[" & $a_Call[6] & "]", DllStructGetPtr($tBuffer)) Return SetError(0, 0, DllStructGetData($tOutput, 1)) EndFunc ;==>__backgroundEDITED: There were other problems, the image is huge in the script that I want to use and do not know how to resize and also can not delete the image after it is created! Edited October 28, 2015 by Belini My Codes: Virtual Key Code UDF: http://www.autoitscript.com/forum/topic/138246-virtual-key-code-udf/ GuiSplashTextOn.au3: http://www.autoitscript.com/forum/topic/143542-guisplashtexton-udf/ Menu versions of Autoit: http://www.autoitscript.com/forum/topic/137435-menu-versions-of-autoit/#entry962011 Selects first folder of letters: ]http://www.autoitscript.com/forum/topic/144780-select-folders-by-letter/#entry1021708/spoiler] List files and folders with long addresses.: http://www.autoitscript.com/forum/topic/144910-list-files-and-folders-with-long-addresses/#entry102 2926 Program JUKEBOX made in Autoit:some functions:http://www.youtube.com/watch?v=WJ2tC2fD5Qs Navigation to search:http://www.youtube.com/watch?v=lblwOFIbgtQ
UEZ Posted October 28, 2015 Posted October 28, 2015 (edited) This is not exactly what I meant. I found an old script which I wrote:expandcollapse popup#include <ScreenCapture.au3> #include <WindowsConstants.au3> #include <StaticConstants.au3> #include <GUIConstantsEx.au3> _GDIPlus_Startup() Global $iCtrlX = 10, $iCtrlY = 70, $iCtrlW = 250, $iCtrlH = 20 $hGUI = GUICreate("Test", 450, 100);, -1, -1, Default, BitOR($WS_EX_COMPOSITED, $WS_EX_TOPMOST, $WS_EX_LAYERED)) $iPic_bg = GUICtrlCreatePic("", 0, 0, 450, 100) GUICtrlSetState(-1, $GUI_DISABLE) $iLabel = GUICtrlCreateLabel("Standard Control: 0000000000", 10, 10, $iCtrlW, $iCtrlH) GUICtrlSetFont(-1, 11, 400, 0, "Arial") $iPic = GUICtrlCreatePic("", $iCtrlX, $iCtrlY, $iCtrlW, $iCtrlH) GUICtrlSetState(-1, $GUI_DISABLE) $hBG_Image = _ScreenCapture_Capture("", 0, @DesktopHeight - 100, 450, @DesktopHeight) $hB = GUICtrlSendMsg($iPic_bg, 0x0172, 0, $hBG_Image) If $hB Then _WinAPI_DeleteObject($hB) GUISetState() $hImage = _GDIPlus_BitmapCreateFromHBITMAP ($hBG_Image) _WinAPI_DeleteObject($hBG_Image) $hImgBg_Rect = _GDIPlus_CropImage($hImage, $iCtrlX, $iCtrlY, $iCtrlW, $iCtrlH) Do Switch GUIGetMsg() Case $GUI_EVENT_CLOSE GUIDelete() _GDIPlus_BitmapDispose($hImgBg_Rect) _GDIPlus_Shutdown() Exit EndSwitch GUICtrlSetData($iLabel, "Standard Control: " & Random(1111111111, 99999999999, 1)) ;standard control is flickering _GDIPlus_DrwTxt2Ctrl($hGUI, $iPic, "Graphic Control: " & Random(1111111111, 99999999999, 1), $hImgBg_Rect, 11, "Arial", 0xFFF0F080, 0xFFF0F0F0, 1) ;workaround using GDI+ Until False Func _GDIPlus_DrwTxt2Ctrl($hWnd, $iCtrl, $sText, $hBgImage = 0, $iFontSize = 11, $sFont = "Arial", $iFontColor = 0xFF000000, $iBgColor = 0xFFF0F0F0, $iAlign = 0, $bAntiAlias = False) ;coded by UEZ build 2013-01-17 Local $hCtrl = GUICtrlGetHandle($iCtrl) Local $aSize = ControlGetPos($hWnd, "", $iCtrl) Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($aSize[2], $aSize[3]) Local $hCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap) If $hBgImage Then _GDIPlus_GraphicsDrawImage($hCtxt, $hBgImage, 0, 0) Else _GDIPlus_GraphicsClear($hCtxt, $iBgColor) EndIf If $bAntiAlias Then _GDIPlus_GraphicsSetSmoothingMode($hCtxt, 2) _GDIPlus_GraphicsSetTextRenderingHint($hCtxt, 4) EndIf Local $hBrush = _GDIPlus_BrushCreateSolid($iFontColor) Local $hFormat = _GDIPlus_StringFormatCreate() _GDIPlus_StringFormatSetAlign($hFormat, $iAlign) Local $hFamily = _GDIPlus_FontFamilyCreate($sFont) Local $hFont = _GDIPlus_FontCreate($hFamily, $iFontSize) Local $tLayout = _GDIPlus_RectFCreate(0, 0, $aSize[2], $aSize[3]) _GDIPlus_GraphicsDrawStringEx($hCtxt, $sText, $hFont, $tLayout, $hFormat, $hBrush) _GDIPlus_FontDispose($hFont) _GDIPlus_FontFamilyDispose($hFamily) _GDIPlus_StringFormatDispose($hFormat) _GDIPlus_BrushDispose($hBrush) _GDIPlus_GraphicsDispose($hCtxt) Local $hHBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap) Local $hB = GUICtrlSendMsg($iCtrl, 0x0172, 0, $hHBitmap) If $hB Then _WinAPI_DeleteObject($hB) _WinAPI_DeleteObject($hHBitmap) Return 1 EndFunc Func _GDIPlus_CropImage($hImage, $iX, $iY, $iW, $iH, $bHBitmap = False) Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH) Local $hCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap) _GDIPlus_GraphicsDrawImageRectRect($hCtxt, $hImage, $iX, $iY, $iW, $iH, 0, 0, $iW, $iH) _GDIPlus_GraphicsDispose($hCtxt) If $bHBitmap Then Local $hHBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap) _GDIPlus_BitmapDispose($hBitmap) Return $hHBmp EndIf Return $hBitmap EndFunc Something like this here. Edited October 28, 2015 by UEZ Modified code to run with built-in functions Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
KaFu Posted October 28, 2015 Posted October 28, 2015 Or try something like this (you'll have to adjust positioning, there seems to be an kind of border/offset in the control, was too lazy for that )... expandcollapse popup#include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <EditConstants.au3> gui_1(); ;If I do not use the $ WS_EX_COMPOSITED flashes the label. Func gui_1() Local $Form1 = GUICreate("Form1", 194, 137, 414, 452) Local $pic = GUICtrlCreatePic(_background(True), 0, 0, 194, 137) Local $Label1 = GUICtrlCreateInput("100", 0, 0, 194, 137, $ES_READONLY, $WS_EX_TRANSPARENT) GUICtrlSetColor(-1, 0xffffff) GUICtrlSetBkColor(-1, 0x000000) GUICtrlSetFont(-1, 70, 800, 0, "Arial Black") GUISetState(@SW_SHOW) For $i = 100 To 200 Sleep(20) GUICtrlSetData($Label1, $i) Next EndFunc ;==>gui_1 While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd ; #INDEX# ======================================================================================================================= ; Title .........: _background() ; AutoIt Version.: 3.3.8.1 ; Language.......: Português (Brasil) - 0416(PTB) ; Description ...: Compressed file embedded ; Author ........: BELINI ; =============================================================================================================================== ; #CURRENT# ===================================================================================================================== ; _background() ; =============================================================================================================================== ; #INTERNAL_USE_ONLY# =========================================================================================================== ; __background() ; _LZNTDecompress renamed! ; __backgroundB64() ; _Base64 renamed! ; =============================================================================================================================== ; #VARIABLES# =================================================================================================================== ; =============================================================================================================================== ; #FUNCTION# ==================================================================================================================== ; Name ..........: _background() ; Description ...: Compressed file embedded in your .au3 file ; Syntax ........: _background( [ lToSave [, sPath [, lExecute ]]] ) ; Parameters ....: lToSave - [optional] If True, save the file, else, return binary data. Default is False. ; sPath - [optional] The path of the file to be save. Default is @TempDir ; lExecute - [optional] Flag to execute file saved. Default is False ; Return values .: Success - Returns decompressed fundo.bmp binary data or saved. ; Failure - Returns 0 and set @error to 1. ; Author(s) .....: João Carlos (Jscript FROM Brazil) ; Modified ......: ; Remarks .......: This function uses _LZNTDecompress() and _Base64Decode() by trancexx. ; Related .......: ; Link ..........: ; Example .......; _background() ; =============================================================================================================================== Func _background($lToSave = False, $sPath = @TempDir, $lExecute = False) Local $hFileHwnd, $bData, $sFileName = $sPath & "\fundo.bmp" ; Original: D:\JukeBel\00 Arquivos úteis\fundo.bmp $bData = "LrGgQk0cDQACADYAUIooADAhBBgBABgASAAAAOYMAAASC8cDDAJAAhD/AABdCF5g/wDA/2Nncf9KXxD/GP8Yf7b/QMinVXYK/0r/Sn8lfww/BP9fJP0Qfwx/DH8MPQR/DH8M/38Mfx37EP8H/xj/GP8Y/xD//xg/Ff8Q+RB/FD8QPRB/DP9/DH8MHwIfAR8BHwEfARUB/38MHwEfAR8BHwEXAb8BHwH/HwEfAR8BFwG/AR8BHwEfAf8fARcBvwEfAR8BHwEfARcB/78BHwEfAR8BHwEXAb8BHwH/HwEfAR8BFwG/AR8BHwEfAf8fARcBvwEfAR8BHwEfARcB/78BHwEfAR8BHwEXAb8BHwH/HwEfAR8BFwG/AR8BHwEfAf8fARcBvwEfAR8BHwEfARcBAAA=" If $lToSave Then $hFileHwnd = FileOpen($sFileName, 10) If @error Then Return SetError(1, 0, 0) FileWrite($hFileHwnd, __background(__backgroundB64($bData))) FileClose($hFileHwnd) If $lExecute Then RunWait($sFileName, "") FileDelete($sFileName) Return 1 EndIf If FileExists($sFileName) Then Return $sFileName Else Return __background(__backgroundB64($bData)) EndIf Return SetError(1, 0, 0) EndFunc ;==>_background ; #INTERNAL_USE_ONLY# =========================================================================================================== ; Name...........: __backgroundB64 ; Description ...: Base64 decode input data. ; Syntax.........: __backgroundB64($bBinary) ; Parameters ....: $sInput - String data to decode ; Return values .: Success - Returns decode binary data. ; - Sets @error to 0 ; Failure - Returns empty string and sets @error: ; |1 - Error calculating the length of the buffer needed. ; |2 - Error decoding. ; Author ........: trancexx ; Modified ......: João Carlos (Jscript FROM Brazil) ; Related .......: _Base64Encode() ; =============================================================================================================================== Func __backgroundB64($sInput) Local $struct = DllStructCreate("int") Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", _ "str", $sInput, _ "int", 0, _ "int", 1, _ "ptr", 0, _ "ptr", DllStructGetPtr($struct, 1), _ "ptr", 0, _ "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(1, 0, "") ; error calculating the length of the buffer needed EndIf Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]") $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", _ "str", $sInput, _ "int", 0, _ "int", 1, _ "ptr", DllStructGetPtr($a), _ "ptr", DllStructGetPtr($struct, 1), _ "ptr", 0, _ "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(2, 0, ""); error decoding EndIf Return DllStructGetData($a, 1) EndFunc ;==>__backgroundB64 ; #INTERNAL_USE_ONLY# =========================================================================================================== ; Name...........: __background ; Original Name..: _LZNTDecompress ; Description ...: Decompresses input data. ; Syntax.........: __background($bBinary) ; Parameters ....: $vInput - Binary data to decompress. ; Return values .: Success - Returns decompressed binary data. ; - Sets @error to 0 ; Failure - Returns empty string and sets @error: ; |1 - Error decompressing. ; Author ........: trancexx ; Related .......: _LZNTCompress ; Link ..........; http://msdn.microsoft.com/en-us/library/bb981784.aspx ; =============================================================================================================================== Func __background($bBinary) $bBinary = Binary($bBinary) Local $tInput = DllStructCreate("byte[" & BinaryLen($bBinary) & "]") DllStructSetData($tInput, 1, $bBinary) Local $tBuffer = DllStructCreate("byte[" & 16 * DllStructGetSize($tInput) & "]") ; initially oversizing buffer Local $a_Call = DllCall("ntdll.dll", "int", "RtlDecompressBuffer", _ "ushort", 2, _ "ptr", DllStructGetPtr($tBuffer), _ "dword", DllStructGetSize($tBuffer), _ "ptr", DllStructGetPtr($tInput), _ "dword", DllStructGetSize($tInput), _ "dword*", 0) If @error Or $a_Call[0] Then Return SetError(1, 0, "") ; error decompressing EndIf Local $tOutput = DllStructCreate("byte[" & $a_Call[6] & "]", DllStructGetPtr($tBuffer)) Return SetError(0, 0, DllStructGetData($tOutput, 1)) EndFunc ;==>__background Belini 1 OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2024-Oct-13) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Oct-13) HMW - Hide my Windows (2024-Oct-19) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2025-May-18) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16)
Belini Posted October 28, 2015 Author Posted October 28, 2015 (edited) @UEZ could not test it gave error on line 72 (Subscript used with non-Array variable)@KaFu Worked but I need to center the text and the control accepts not to use the style $ SS_CENTER Edited October 28, 2015 by Belini My Codes: Virtual Key Code UDF: http://www.autoitscript.com/forum/topic/138246-virtual-key-code-udf/ GuiSplashTextOn.au3: http://www.autoitscript.com/forum/topic/143542-guisplashtexton-udf/ Menu versions of Autoit: http://www.autoitscript.com/forum/topic/137435-menu-versions-of-autoit/#entry962011 Selects first folder of letters: ]http://www.autoitscript.com/forum/topic/144780-select-folders-by-letter/#entry1021708/spoiler] List files and folders with long addresses.: http://www.autoitscript.com/forum/topic/144910-list-files-and-folders-with-long-addresses/#entry102 2926 Program JUKEBOX made in Autoit:some functions:http://www.youtube.com/watch?v=WJ2tC2fD5Qs Navigation to search:http://www.youtube.com/watch?v=lblwOFIbgtQ
UEZ Posted October 28, 2015 Posted October 28, 2015 @Belini: I updated the code above. Please try again. Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
Belini Posted October 28, 2015 Author Posted October 28, 2015 I use the 3.3.9.4 version of Autoit and gave undefined function to _GDIPlus_BitmapCreateFromScan0 () and _GDIPlus_GraphicsSetTextRenderingHint () as I can exchange them for other functions from version 3.3.9.4? My Codes: Virtual Key Code UDF: http://www.autoitscript.com/forum/topic/138246-virtual-key-code-udf/ GuiSplashTextOn.au3: http://www.autoitscript.com/forum/topic/143542-guisplashtexton-udf/ Menu versions of Autoit: http://www.autoitscript.com/forum/topic/137435-menu-versions-of-autoit/#entry962011 Selects first folder of letters: ]http://www.autoitscript.com/forum/topic/144780-select-folders-by-letter/#entry1021708/spoiler] List files and folders with long addresses.: http://www.autoitscript.com/forum/topic/144910-list-files-and-folders-with-long-addresses/#entry102 2926 Program JUKEBOX made in Autoit:some functions:http://www.youtube.com/watch?v=WJ2tC2fD5Qs Navigation to search:http://www.youtube.com/watch?v=lblwOFIbgtQ
Belini Posted October 29, 2015 Author Posted October 29, 2015 (edited) UEZ Used the 3.3.14.1 version and it showed unblinking text but what I need is even use a label upon a PIC unblinking, what I really need is to use the $ WS_EX_COMPOSITED not to blink and Label is above pic.EDITED: $ WS_EX_COMPOSITED already solved the problem of flashing the label now we just need to upload the image keeping the label over it. Edited October 29, 2015 by Belini My Codes: Virtual Key Code UDF: http://www.autoitscript.com/forum/topic/138246-virtual-key-code-udf/ GuiSplashTextOn.au3: http://www.autoitscript.com/forum/topic/143542-guisplashtexton-udf/ Menu versions of Autoit: http://www.autoitscript.com/forum/topic/137435-menu-versions-of-autoit/#entry962011 Selects first folder of letters: ]http://www.autoitscript.com/forum/topic/144780-select-folders-by-letter/#entry1021708/spoiler] List files and folders with long addresses.: http://www.autoitscript.com/forum/topic/144910-list-files-and-folders-with-long-addresses/#entry102 2926 Program JUKEBOX made in Autoit:some functions:http://www.youtube.com/watch?v=WJ2tC2fD5Qs Navigation to search:http://www.youtube.com/watch?v=lblwOFIbgtQ
UEZ Posted October 29, 2015 Posted October 29, 2015 You don't need to provide the background image.Use this line instead_GDIPlus_DrwTxt2Ctrl($hGUI, $iPic, "Graphic Control: " & Random(1111111111, 99999999999, 1), 0, 11, "Arial", 0xFF000040, 0xFFF0F0F0, 1) ;workaround using GDI+ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
Belini Posted October 29, 2015 Author Posted October 29, 2015 But I need to have an image under the text, without the image works already using $WS_EX_COMPOSITED My Codes: Virtual Key Code UDF: http://www.autoitscript.com/forum/topic/138246-virtual-key-code-udf/ GuiSplashTextOn.au3: http://www.autoitscript.com/forum/topic/143542-guisplashtexton-udf/ Menu versions of Autoit: http://www.autoitscript.com/forum/topic/137435-menu-versions-of-autoit/#entry962011 Selects first folder of letters: ]http://www.autoitscript.com/forum/topic/144780-select-folders-by-letter/#entry1021708/spoiler] List files and folders with long addresses.: http://www.autoitscript.com/forum/topic/144910-list-files-and-folders-with-long-addresses/#entry102 2926 Program JUKEBOX made in Autoit:some functions:http://www.youtube.com/watch?v=WJ2tC2fD5Qs Navigation to search:http://www.youtube.com/watch?v=lblwOFIbgtQ
Belini Posted October 30, 2015 Author Posted October 30, 2015 Apparently put a label on PIC and upgrade it without blinking is more difficult than I imagined! My Codes: Virtual Key Code UDF: http://www.autoitscript.com/forum/topic/138246-virtual-key-code-udf/ GuiSplashTextOn.au3: http://www.autoitscript.com/forum/topic/143542-guisplashtexton-udf/ Menu versions of Autoit: http://www.autoitscript.com/forum/topic/137435-menu-versions-of-autoit/#entry962011 Selects first folder of letters: ]http://www.autoitscript.com/forum/topic/144780-select-folders-by-letter/#entry1021708/spoiler] List files and folders with long addresses.: http://www.autoitscript.com/forum/topic/144910-list-files-and-folders-with-long-addresses/#entry102 2926 Program JUKEBOX made in Autoit:some functions:http://www.youtube.com/watch?v=WJ2tC2fD5Qs Navigation to search:http://www.youtube.com/watch?v=lblwOFIbgtQ
Belini Posted November 3, 2015 Author Posted November 3, 2015 As I could not do it the way I wanted I used the tip of @Kafu but I had to move the input off the screen when I do not need the text on the PIC because the input does not accept GUICtrlSetBkColor (-1, $ GUI_BKCOLOR_TRANSPARENT) as the label. My Codes: Virtual Key Code UDF: http://www.autoitscript.com/forum/topic/138246-virtual-key-code-udf/ GuiSplashTextOn.au3: http://www.autoitscript.com/forum/topic/143542-guisplashtexton-udf/ Menu versions of Autoit: http://www.autoitscript.com/forum/topic/137435-menu-versions-of-autoit/#entry962011 Selects first folder of letters: ]http://www.autoitscript.com/forum/topic/144780-select-folders-by-letter/#entry1021708/spoiler] List files and folders with long addresses.: http://www.autoitscript.com/forum/topic/144910-list-files-and-folders-with-long-addresses/#entry102 2926 Program JUKEBOX made in Autoit:some functions:http://www.youtube.com/watch?v=WJ2tC2fD5Qs Navigation to search:http://www.youtube.com/watch?v=lblwOFIbgtQ
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