|
|
发表于 2007-7-28 22:29:00
|
显示全部楼层
Re:VC++,SDI?0?如何可以在MainFrame右下?示progress
够造一个CProgressCtrl的对象`
掉用CProgressCtrl中的Create创建一个进度拦的控件
CProgressCtrl::Create
在CMainFrame中添加
protected:
CProgressCtrl m_progress;
首先要获得进度条的位子的区域的大小`
用CStatusBar::GetItemRect可以办到`它的第一个参数是用来获取进度条要放的那个位子的`
看它在指示器中所站的索引是多少`
必须在CMainFrame头文件中自定义一个消息#define UM_PROGRESS WM_USER+1
接下来对消息响应函数的原形进行声明afx_msg void OnProgress();
消息映射`ON_MESSAGE(UM_PROGRESS,OnProgress)
创建一个WM_PAINT的消息
void CMainFrame::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
CRect rect;
m_wndStatusBar.GetItemRect(2,&rect);
if(!m_progress.m_hWnd)
m_progress.Create(WS_CHILD | WS_VISIBLE ,//| PBS_SMOOTH,
rect,&m_wndStatusBar,123);
else
m_progress.MoveWindow(rect);
m_progress.SetPos(50);
// Do not call CFrameWnd::OnPaint() for painting messages
}
在OnTimer中添加m_progress.StepIt();
利用CProgressCtrl::SetRange可一设置进度栏的范围`
|
|