作为常用控件之一,进度条的重绘是最为频繁、最为丰富的。可以说没有几种软件用的是系统提供的进度条。本文只是简单的说明了进度条重绘的方法,例子中绘制的进度条并无特别之处,但一旦掌握本文的方法就可画出各种漂亮的进度条。
还和以前一样,我们要明确重绘进度条要重载那些函数。通过观察我们可以发现,标准进度条同样拥有3D外观。尝试一下就会知道进度条的3D外观属于非客户区,而进度条部分属于客户区。这样我们的重绘工作就分为两部分:非客户区重绘和客户区重绘。
非客户区重绘是在OnNcPaint函数中完成的,例子中只是简单的画了一个边框。
客户区重绘实在OnPaint函数中完成的,在这里绘制了背景色,并根据不同进度值来绘制进度条部分。出于简单实用的考虑,进度条是用位图绘制的。
可以说进度条的重绘比较简单,基于我的这个例子,通过改变位图就可以画出各种不同的、更加漂亮的进度条,当然还可以在上面写上文字以表示进度值。总之,想怎样丰富和美化都可以。希望大家画出更好的进度条,共同交流提高。