MFC应用实例:[15]状态栏添加进度条

 时间:2026-04-25 08:57:09

1、创建一个单文档工程将其命名为Progress

MFC应用实例:[15]状态栏添加进度条

2、从CStatusBar类派生出CProgressStatusBar给他添加如下成员m_Progress

并添加内联函数:

CProgressCtrl& GetProgressCtrl()

{

return m_Progress;

};

MFC应用实例:[15]状态栏添加进度条

3、然后重载CStatusBar类的两个重要成员函数OnCreate(),OnSize()

并添加一下代码:

int CProgressStatusBar::OnCreate(LPCREATESTRUCT lpCreateStruct) 

{

VERIFY(CStatusBar::OnCreate(lpCreateStruct) ==0 );

VERIFY(m_Progress.Create(WS_CHILD|WS_VISIBLE, CRect(0,0,0,0), this, IDC_PROGRESS));

return 0;

}

void CProgressStatusBar::OnSize(UINT nType, int cx, int cy) 

{

CStatusBar::OnSize(nType, cx, cy);

CRect rect;

GetItemRect(1, &rect);

m_Progress.MoveWindow(rect);

}

MFC应用实例:[15]状态栏添加进度条

4、在CMainFrame的OnCreate()函数中添加一个计时器代码如下:

SetTimer(1,100,NULL);

并添加WM_TIMER消息函数,该消息的处理函数如下:

void CMainFrame::OnTimer(UINT nIDEvent) 

{

int nLower,nUpper;

m_wndStatusBar.GetProgressCtrl().GetRange(nLower,nUpper);

if(m_Pos>=nUpper)

m_Pos=0;

m_wndStatusBar.GetProgressCtrl().SetPos(m_Pos);

m_Pos+=1;

CFrameWnd::OnTimer(nIDEvent);

}

MFC应用实例:[15]状态栏添加进度条

5、程序运行效果如下图:状态栏出现进度条。

MFC应用实例:[15]状态栏添加进度条

  • 单元格中如何输入具体的数值设置列宽
  • 足球栏球技巧之正面拦截技巧
  • Word2016怎么插入小方框?
  • Excel2010中怎样设置纸张大小
  • 怎样在电脑中创建五角星?
  • 热门搜索
    如何煎荷包蛋 韩菲诗化妆品怎么样 舌头边缘有齿痕是什么原因 安子齐的古代生活 生活质量评定量表 淘宝宝贝怎么上架 accordion怎么读 如何炸油条 怎么长高最快 草木皆兵的意思是什么