简单封装的一个彩色进度条【原创】[4]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 waterpub 的 blog

;     ; m_ncurpos         = 0 ; m_nstep                 = 1 ; // 初始化显示颜色 m_clrstart = colorref(rgb(255, 0, 0)) ; m_clrend = colorref(rgb(0, 0, 255)) ; m_clrbkground = ::getsyscolor(color_3dface)         ; m_clrtext = colorref(rgb(255, 255, 255)) ; // 显示百分比,文字 m_bshowpercent = true ; m_bshowtext = true ; m_bkgroundbrush.createsolidbrush(m_clrbkground) ; memset(m_text, 0, 32); } cgradientprogressctrl::~cgradientprogressctrl() { m_bkgroundbrush.deleteobject(); } begin_message_map(cgradientprogressctrl, cprogressctrl) on_wm_paint() end_message_map() ///////////////////////////////////////////////////////////////////////////// // cgradientprogressctrl 消息处理程序 void cgradientprogressctrl::setrange(int nlower, int nupper) { // 设置进度条的范围 m_nlower = nlower ; m_nupper = nupper ; m_ncurpos = nlower ; cprogressctrl::setrange(nlower, nupper); cprogressctrl::setpos(nlower); } int cgradientprogressctrl::setstep(int nstep) { // 设置步进值 m_nstep = nstep; return (cprogressctrl::setstep(nstep)); } int cgradientprogressctrl::setpos(int npos) { // 设置进度条位置 m_ncurpos = npos; return (cprogressctrl::setpos(npos)); } int cgradientprogressctrl::settext(const char * ptext, bool brepaint) { // 显示的文字 strcpy(m_text, ptext); if (brepaint && m_bshowtext) { invalidate(true); } return 0; } void cgradientprogressctrl::onpaint() { cpaintdc dc(this); // 设备环境 // todo: 重画进度条 rect rectclient; getclientrect(&rectclient); if (m_ncurpos <= m_nlower || m_ncurpos > m_nupper) { // 不在范围之内直接以背景色填充 dc.fillrect(&rectclient, &m_bkgroundbrush);

本文关键:简单封装的一个彩色进度条【原创】
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top