3 回答

TA贡献1794条经验 获得超8个赞
首先在页面中加入进度条控件,具体叫什么记不清了,自己找一下
然后绑定变量
如果没猜错的话OnInitPlayer(); 这个函数是整个文件导入的函数吧。
应该从这个函数下手,因为只有这个函数里面才知道文件真正的导入进度。
在这个函数中,首先获取文件的大小,然后没导入一部分之后,算好比例,更新界面上的进度条就可以了。

TA贡献1815条经验 获得超10个赞
首先打开文件不需要进度条,open是立刻返回,只有读入的时候,如果文件很大才需要进度条,对用户提示。
方法1 循环读入文件,每读一段数据,就更新下进度条,让它前进一小步。
方法2 多线程,在另一个线程里读入,并更新进度条,可以先把进度条做参数传入

TA贡献1789条经验 获得超8个赞
1.在MainFrm.h中生命对象:
CProgressCtrl m_progres;
2.在CMainFrame::OnCreate函数中创建状态栏样式:
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
3.添加WM_PAINT消息,在消息的处理函数中:
CRect rect;
m_wndStatusBar.GetItemRect(0,&rect);
if(!m_progres.m_hWnd)
{
m_progres.Create(WS_CHILD | WS_VISIBLE ,//| PBS_SMOOTH,
rect,&m_wndStatusBar,123);
}
else
{
m_progres.MoveWindow(rect);
}
4.添加一个菜单,对其进行测试:
void CMainFrame::OnRun()
{
m_progres.StepIt();
}
- 3 回答
- 0 关注
- 134 浏览
添加回答
举报