Tiene este aspecto, esto es una captura estática, lógicamente cuando se ejecuta se mueve

Os muestro 4 versiones de hacer el mismo efecto. El problema de las tres primeras es que los controles normales del GUI parpadean (en cada versión menos). El problema del último ¡que no parpadea nada! es que la programación se complica un poco...
Lo ideal sería hacer funcionar el primero sin parpadeo, ¿quizás algún truquito con WM_PAINT?, pues es el más fácil de programar, creo.
El que quiera ver el efecto mejor conseguido puede poner directamente la última versión "4FondoAnimado2BufferRegiones.au3". Podéis cambiar el número de bolitas cambiando el valor de la variable $BOLAS, mientras la CPU dé abasto para dibujarlas en el tiempo de la función Adlib no hay problema, depende del ordenador, yo en uno podía poner unas 300, en otro he llegado a poner 1000. Si os pasáis el GUI deja de responder y hay que matar el proceso (se puede hacer desde el icono de la bandeja). De todas maneras eso sólo sirve para ver lo suave que va la última versión independientemente del número de bolas, si se ponen muchas no queda muy bonito.
Uso AutoIt 3.3.0, para versiones modernas si da error de compilación cambiad AdlibEnable por AdlibRegister.
Al final del post tenéis un RAR con los 4 códigos.
Para los programadores, y especialmente a los que me quieran ayudar a mejorarlo, os explico qué he hecho en cada versión. Como digo lo ideal sería hacer que el primero no parpadee, o quizás el del doble búfer, eso facilitaría mucho la programación.
Las versiones son éstas:
1FondoAnimado.au3
Dibuja directamente en el graphics del GUI, pinta todas las bolas y cuando acaba fuerza un WM_PAINT.
2FondoAnimadoCadaBola.au3
En vez de repintar todo el fondo borra cada bola independientemente y la redibuja en su nueva posición, actualizando para cada bola. Con pocas bolas va mejor que el anterior, porque sólo invalida las zonas ocupadas por las mismas, con lo que sólo parpadean las partes del GUI que interseccionan con las bolitas, y no todo el GUI como pasaba antes. Eso sí, con muchas bolas es casi peor, pues igual está afectado casi todo el GUI y se hace más trabajo.
3FondoAnimado2Buffer.au3
Es como la primera versión pero usando un búfer intermedio para pintar el fondo, copiando todas las actualizaciones de una vez en el graphics del GUI con un simple _GDIPlus_GraphicsDrawImage. Desgraciadamente sigue parpadeando, aunque he visto que en ordenadores algo más lentos parpadea menos que la primera versión.
4FondoAnimado2BufferRegiones.au3
¡Esta versión no parpadea nada! El truco está en excluir de GDI+ las regiones ocupadas por los controles. Resulta que hay funciones similares en GDI+ a las de WinAPI de regiones, que ya había usado, pero en vez de afectar a una ventana afecta a un objeto Graphics. También es necesario usar el doble búfer, para que no se vea cómo se van dibujando los objetos independientes, y no parpadee al borrar el gráfico al principio del frame (el _GDIPlus_GraphicsClear).
PROBLEMA: al excluir los controles, los de fondo transparente dejan de serlo. Así que si quieres efectos similares hay que dibujar esos controles con GDI+ después de dibujar las bolitas. Por ejemplo para el GROUP he tenido que hacer un recuadro (y un label normal). Para los labels transparentes... pues toca dibujar los textos, ¡y es un rollo! No me gusta nada lo de crear montones de objetos más, además que hay que dibujar todos esos controles del GUI ¡cada vez!. Una etiqueta normal, no transparente (como el título del grupo), la creas con GUICtrlCreateLabel y te olvidas de ella.
Atención: ¡ESTA VERSIÓN NO USA WM_PAINT!. Como no hay que repintar los controles normales del GUI, pues no son machacados por los dibujos de GDI+, esta parte se simplifica.
En Vista los tres primeros me van casi igual, aunque en XP (y procesador más lento, también puede ser importante) el parpadeo es más notorio en el primero y menos en el tercero. El cuarto va aparte, ese va "perfecto".

La función para el brush con degradado de la bolita esa tan chula es de UEZ, al que adoro como un DIOS del GDI+, nos os perdáis sus ejemplos en:
http://www.autoitscript.com/forum/index ... opic=87200
La bola en sí también está cogida de su ejemplo, más o menos, porque no entendía mucho el código y lo he rehecho un poco.
¡Pero todo lo demás es mío!

¡Ya me diréis!