This application is just an overlay over the desktop that randomly changes colors. This was just something I was playing around with. I will try and see if I can make other animations to the desktop.

PHP Code:
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>
#include <time.h>

//Window Handles
HWND hWnd;

int screenWidth 0;
int screenHeight 0;

//Center Window
VOID CenterWindow(HWND hwndHWND hwndParentint Widthint Height)
{
    
/* Variables */
    
RECT rc;
 
    
/* If Parent Window Is Set As Null, Get The Desktop Window */
    
if(hwndParent == NULL)
    {
        
hwndParent GetDesktopWindow();
    }
 
    
/* Get Parent Client Area Measurements */
    
GetClientRect(hwndParent, &rc);
 
    
/* Center The Window */
    
MoveWindow(hwnd, (rc.right rc.left Width) / 2, (rc.bottom rc.top Height) / 2WidthHeightTRUE);
 
    return;
}

void GetDesktopResolution(intwidthintheight)
{
    
RECT desktop;
    
// Get a handle to the desktop window
    
const HWND hDesktop GetDesktopWindow();
    
// Get the size of screen to the variable desktop
    
GetWindowRect(hDesktop, &desktop);
    
// The top left corner will have coordinates (0,0)
    // and the bottom right corner will have coordinates
    // (horizontal, vertical)
    
width desktop.right;
    
height desktop.bottom;
}

bool isRunning()
{
    
//This checks if the process is already running so you don't have multiple instances running.
    
HANDLE handle CreateMutex(NULLtrue"desktopOverlay");
    if(
GetLastError() != ERROR_SUCCESS)
    {
        
MessageBox(0"Process is already running""Warning"MB_ICONWARNING);
        return 
false;
    }
    else
        return 
true;
}

RECT initRecArea(int leftint topint widthint height

    
RECT rec = {lefttopwidthheight}; 
    return 
rec


int randColor(floatrfloatgfloatb)
{
    
COLORREF colRef1 RGBrand() % 255rand() % 255rand() % 255 );
    
HBRUSH color1 CreateSolidBrushcolRef1 );

    
//This get the individual RGB colors from our brush above
    //Then it takes the difference between the seeded color 
    //and the randomized color and divides by 255 (could be any number)
    
*+= (((GetRValuecolRef1 )) - *r) / 255);
    *
+= (((GetGValuecolRef1 )) - *g) / 255);
    *
+= (((GetBValuecolRef1 )) - *b) / 255);

    
DeleteObject((HBRUSH)color1);

    return (int)
CreateSolidBrushRGB( *r, *g, *) );


void DrawStuff(HWND hWndHDC hDCRECTrc

    static 
float rg= (float)(rand() % 255);

//    HWND desktop = GetDesktopWindow(); 
//    HDC hdc = GetWindowDC(hWnd);
//    HDC memDC = CreateCompatibleDC(hdc);
    
HDC memDC CreateCompatibleDC(GetWindowDC(hWnd));
    
HBITMAP hMemBmp CreateCompatibleBitmap(hDCscreenWidthscreenHeight);
    
HBITMAP hOldBmp = (HBITMAP)SelectObject(memDChMemBmp);

    
srand((int)time(NULL)); //Needed to randomize the color correctly

    
RECT rec initRecArea(rc.leftrc.topscreenWidthscreenHeight);
    
GetClientRect(hWnd, &rec);
    
screenWidth = (rec.right rec.left);
    
screenHeight =  (rec.bottom rec.top);

    
// Get the device context for the screen
    
if (hDC == NULL)
    {
        
MessageBoxA(0"Device context can't be found!""Error"MB_OK MB_ICONERROR);
    }

    
//Color the background to myColor
    //HBRUSH hBrush = CreateSolidBrush(RGB(0,0,255));
    
int hBrush = (int)randColor(&r,&g,&b);
    
FillRect(memDC, &rec, (HBRUSH)hBrush);
    
DeleteObject((HBRUSH)hBrush);

    
// Set WS_EX_LAYERED on this window 
    
SetWindowLong(hWndGWL_EXSTYLE,
    
GetWindowLong(hWndGWL_EXSTYLE) | WS_EX_LAYERED);
    
// Make this window 70% alpha
    
SetLayeredWindowAttributes(hWnd0, (255 50) / 100LWA_ALPHA); //50% transparency
    // Ask the window and its children to repaint
    
RedrawWindow(hWndNULLNULLRDW_ERASE RDW_INVALIDATE RDW_FRAME RDW_ALLCHILDREN);

    
// Draw Buffer into screen
    
BitBlt(hDC00screenWidthscreenHeightmemDC00SRCCOPY);

    
// Finally set the animation timer
    
SetTimer(hWndNULL25NULL);

    
//Free Resources
    
SelectObject(memDChOldBmp);
    
DeleteObject(hMemBmp);

    
DeleteDC(memDC);
}  

LRESULT CALLBACK WndProc(HWND hWndUINT messageWPARAM wParamLPARAM lParam)
{
    
PAINTSTRUCT ps;
    
HDC hdc;
    
RECT rc = {0};

    switch (
message)
    {
        case 
WM_ERASEBKGND:
        {
            return 
TRUE;
        }
        break;

        case 
WM_PAINT:
        {
            
hdc BeginPaint(hWnd, &ps);            

            
// TODO: Add any drawing code here...
            
DrawStuff(hWndhdcrc);
            
ReleaseDC(hWndhdc);

            
EndPaint(hWnd, &ps);
        }
        break;

        case 
WM_CREATE:
        {
            
SetTimerhWndNULLUSER_TIMER_MINIMUMNULL );
        }
        break;

        case 
WM_TIMER:
        {
            
GetClientRecthWnd, &rc );
            
InvalidateRecthWnd, &rcTRUE );
        }
        break;

        case 
WM_KEYDOWN:
        {
             if(
wParam == VK_ESCAPE
             {
                 
int ret MessageBox(NULLTEXT("Are you sure to quit?"), TEXT("Message"), MB_OKCANCEL);
                 
                 if(
ret == IDOK
                 {
                     
SendMessage(hWndWM_CLOSE00);
                 }
             }
        }
        break;

        case 
WM_DESTROY:
            
PostQuitMessage(0);
        break;

        default:
            return 
DefWindowProc(hWndmessagewParamlParam);
    }
    return 
0;
}

int APIENTRY WinMainHINSTANCE hInstanceHINSTANCE hPrevInstanceLPSTR lpCmdLineint nCmdShow )
{
    
int width 0;
    
int height 0;

    
//Check if this process is running
    
if(isRunning() == false)
        return 
0;
    
    
char szWindowClass[] = "desktopOverlay";
    
MSG msg;

    
WNDCLASSEX wcex            = {0};
    
wcex.cbSize                sizeof(WNDCLASSEX);
    
wcex.style                CS_HREDRAW CS_VREDRAW;
    
wcex.lpfnWndProc        WndProc;
    
wcex.hInstance            hInstance;
    
wcex.hCursor            LoadCursorNULLIDC_ARROW );
    
wcex.hbrBackground        = (HBRUSH)GetStockObject(BLACK_BRUSH);
    
wcex.lpszClassName        szWindowClass;
    
wcex.hIcon                LoadIcon(NULLIDI_APPLICATION);
    
wcex.hIconSm            LoadIcon(NULLIDI_APPLICATION);
    
RegisterClassEx( &wcex );

    
GetDesktopResolution(widthheight);

    
//Main Application Window
    //hWnd = CreateWindowEx(0, szWindowClass, "", WS_POPUPWINDOW | WS_CAPTION | WS_MAXIMIZEBOX, 0, 0, 400, 200, NULL, NULL, hInstance, NULL);
    
hWnd CreateWindowEx(WS_EX_LAYERED WS_EX_TRANSPARENT WS_EX_TOPMOST WS_EX_TOOLWINDOWszWindowClass""WS_POPUP WS_VISIBLE00widthheightNULLNULLhInstanceNULL);
    
    
// Do stuff here

    //End

    
if(!hWnd)
    {
        return 
FALSE;
    }

    
//Activate our Main Window
    
CenterWindow(hWndNULLwidthheight);
    
ShowWindow(hWndnCmdShow);
    
UpdateWindow(hWnd);

    while(
GetMessage(&msgNULL00))
    {
        
TranslateMessage( &msg );
        
DispatchMessage( &msg );
    }

    return (int) 
msg.wParam;