Привет, у меня возникла сложность в использовании фоновой картинки стандартными функциями, в справке нашел
, в примерах меня заинтересовал 3, тот, что использует .png картинки, но добавив картинку в свою программу столкнулся с парой проблем:
1. стандартные элементы GUI созданные с помощью
или
вообще не видны, ушли под картинку
2. при сворачивании окна и разворачивании пропадает из видимости еще и кнопка созданная тоже стандартным способом
, появляется кнопка только если поверх её расположения провести курсор после разворачивания
как решить их?
Один из лейблов был создан с помощью расширения GUIFFLabel выложенного на этом форуме, этот лейбл показывается поверх картинки всегда, при разворачивании его перересовывает активация функции WM_ACTIVATE() по событию WM_ACTIVATE
пример вставки картинки в описанное выше приложение в аттаче, файлик GUIFFLabel2.au3 тоже приложил, весь код программы ниже
Код:
GUICtrlCreatePic
1. стандартные элементы GUI созданные с помощью
Код:
GUICtrlCreateLabel
или
Код:
GUICtrlCreateProgress
2. при сворачивании окна и разворачивании пропадает из видимости еще и кнопка созданная тоже стандартным способом
Код:
GUICtrlCreateButton
как решить их?
Один из лейблов был создан с помощью расширения GUIFFLabel выложенного на этом форуме, этот лейбл показывается поверх картинки всегда, при разворачивании его перересовывает активация функции WM_ACTIVATE() по событию WM_ACTIVATE
пример вставки картинки в описанное выше приложение в аттаче, файлик GUIFFLabel2.au3 тоже приложил, весь код программы ниже
Код:
#NoTrayIcon
#include <Crypt.au3>
#include <Date.au3>
#include <GUIFFLabel2.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <Array.au3>
#include <GDIPlus.au3>
#Include <WinAPI.au3>
Opt("GUIOnEventMode", 1)
;---------------------------------------------------------- vars
;---------------------------------------------------------- 0xF0F0F0 серый
;---------------------------------------------------------- 0xACB8C4 желтый кажется
;---------------------------------------------------------- Self Update
;----------------------------------------------------------
;----------------------------------------------------------
$hWnd=GUICreate("тест окно",380,200)
; Load PNG image
_GDIPlus_StartUp()
$hImage = _GDIPlus_ImageLoadFromFile("D:\Работа\проверятор - скрипты AutoIt\0.png")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
$Lbl1=GUICtrlCreateLabel("лейбл1",10,30,100,20,$SS_LEFT)
$Lbl2=GUICtrlCreateLabel("лейбл2",10,50,310,60,$SS_LEFT)
$hTimeSpendLbl = _GUICtrlFFLabel_Create($hWnd, "другой лейбл1", 10,90,110,20, 9, 'Times', 1, 0)
$Button = GUICtrlCreateButton("Однако кнопка",10,120,120,20)
$progressbar1 = GUICtrlCreateProgress(10, 150, 200, 20)
GUICtrlSetOnEvent(-1, "_Main_Events")
GUIRegisterMsg(0x0006 , "WM_ACTIVATE")
GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
GUISetOnEvent($GUI_EVENT_CLOSE, "_Main_Events")
GUISetState(@SW_SHOW)
Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
_WinAPI_RedrawWindow($hWnd, 0, 0, $RDW_UPDATENOW)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
_WinAPI_RedrawWindow($hWnd, 0, 0, $RDW_VALIDATE)
Return $GUI_RUNDEFMSG
EndFunc
While 1
Sleep(100)
;типо главный цикл
WEnd
;---------------------------------------------------------- controll of interface
;----------------------------------------------------------
;----------------------------------------------------------
Func _Main_Events()
;~ consolewrite('событие_'&@GUI_CtrlId&@lf)
Switch @GUI_CtrlId
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
EndFunc
Func WM_ACTIVATE()
sleep(100)
_GUICtrlFFLabel_Refresh($hTimeSpendLbl)
EndFunc