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](/KB/Articles/5298804/main.gif)
Introduction
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](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
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:
#include "PngAnimation.h"
PngAnimation m_Anim;
…
if( !m_Anim.Create(NULL,IDB_PNG1,31) )
return -1; 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!
History
- 31st March, 2021: Initial version