The article talks about a way to create an animated image to show that your program is currently doing some work.
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:
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 loading.io. 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:
if( !m_Anim.Create(NULL,IDB_PNG1,31) )
return -1; m_Anim.Start(m_hWnd, 50,50, ::GetSysColor(COLOR_WINDOW), 40,true);
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.
PngAnimation object does not use MFC and can be used in a regular Win32 API application.
- 31st March, 2021: Initial version