Click here to Skip to main content
14,970,700 members
Articles / Multimedia / GDI+
Posted 1 Apr 2021


11 bookmarked


Rate me:
Please Sign up or sign in to vote.
4.47/5 (8 votes)
1 Apr 2021Public Domain1 min read
One of the easiest ways to animate images for your program
The article talks about a way to create an animated image to show that your program is currently doing some work.

Sample Image - maximum width is 600 pixels


Often, the program needs to show that it is currently performing some action. For example, a project is being loaded, a device is being searched, data is being converted or new data is being generated. In such cases, animation is used. One of the easiest ways to do this is to draw a graphic file that looks like this:

Image 2

Frames are shown from left to right at regular intervals.

You can create such a file yourself or use one of the online services, for example It is also possible to split some apng file into separate png files using the APNG Disassembler program. After that, using a graphical editor, they can be combined manually into one file.

Using the Code

To create the animation, do the following:

#include "PngAnimation.h"

PngAnimation m_Anim;
if( !m_Anim.Create(NULL,IDB_PNG1,31) )
    return -1;   // error.
m_Anim.Start(m_hWnd, 50,50, ::GetSysColor(COLOR_WINDOW), 40,true);

The PngAnimation object works with png files. It is created once, for example, when creating a window. Next, you only need to call the Start function. If you passed false as the last parameter of the Start, then after showing all parts of the png file, the animation will stop. To start it, you need to call the Start function again.

Also, a color is passed to the Start function, which is used to fill the area occupied by the PngAnimation before drawing it.

The PngAnimation object does not use MFC and can be used in a regular Win32 API application.

Good luck!


  • 31st March, 2021: Initial version


This article, along with any associated source code and files, is licensed under A Public Domain dedication


About the Author

Baradzenka Aleh
Software Developer
Canada Canada

Comments and Discussions

QuestionWhere is the article ? Pin
tbayart5-May-21 8:32
professionaltbayart5-May-21 8:32 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.