Здравствуй, форум. Мне захотелось добавить AVI анимацию в гуй, и я, полазив по справке WinAPI, написал следующую процедуру:
Код:
Procedure AviGadget(Parent, X, Y, Width, Height, File$, Style)
#IDC_ANIMATE = 301
Protected hInstance = GetModuleHandle_(#Null)
Macro Animate_Create(hwndP, id, dwStyle, hInstance)
CreateWindow_(#ANIMATE_CLASS, #Null, dwStyle, 0, 0, 0, 0, hwndP, id, hInstance, #Null)
EndMacro
Macro Animate_Open(hwnd, szName)
SendMessage_(hwnd, #ACM_OPEN, 0, szName)
EndMacro
Protected hAnimate = Animate_Create(WindowID(Parent), #IDC_ANIMATE, Style | #WS_CHILD, hInstance)
SetWindowPos_(hAnimate, 0, X, Y, Width, Height, #SWP_NOZORDER)
Animate_Open(hAnimate, File$)
ShowWindow_(hAnimate, #SW_SHOW)
ProcedureReturn hAnimate
EndProcedure
И, вроде, всё работает, за исключением стиля ACS_TRANSPARENT (прозрачный фон для анимации). Он игнорируется, а с остальными стилями всё в порядке. Что я делаю не так?