Progress进度条的小问题StepIt()

VCXinShou2008 2008-07-24 11:50:05
BOOL CProgressStep::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here

m_ProgressStep.SetRange(0,100);
m_ProgressStep.SetPos(0);

return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}

void CTree::OnStartStep() //Click单击按钮消息
{
CProgressStep m_ProgressStepStart;//CProgressStep为一个进度条类
for(int i=0;i<100;i++)
{
m_ProgressStepStart.m_ProgressStep.SetStep(1);//debug一下会在这里报错
//m_ProgressStep 为CProgressCtrl m_ProgressStep;
m_ProgressStepStart.m_ProgressStep.StepIt();

}
}

请教怎么使用SetStep(1)和StepIt();
谢谢
...全文
810 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xujiali5172923 2012-01-12
  • 打赏
  • 举报
回复
CProgressCtrl* prg = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
prg->ShowWindow(SW_NORMAL);
prg->SetRange(0, 100);
prg->SetPos(0);
prg->SetStep(1);
....
prg->StepIt();
FORTUNATE99 2008-07-24
  • 打赏
  • 举报
回复

CProgressStep m_ProgressStepStart;//CProgressStep为一个进度条类  
//这句的作用不明白,CProgressStep这个类是什么样子的?

void CTree: nStartStep() //Click单击按钮消息
{
// CProgressStep m_ProgressStepStart;//CProgressStep为一个进度条类

for(int i=0;i <100;i++)
{
// m_ProgressStepStart.m_ProgressStep.SetStep(1);//debug一下会在这里报错
//m_ProgressStep 为CProgressCtrl m_ProgressStep;
// m_ProgressStepStart.m_ProgressStep.StepIt();
m_ProgressStep.SetStep(1);
m_ProgressStep.StepIt();
}
}

FORTUNATE99 2008-07-24
  • 打赏
  • 举报
回复
CProgressStep m_ProgressStepStart;//CProgressStep为一个进度条类  
//这句的作用不明白,CProgressStep这个类是什么样子的?

void CTree: nStartStep() //Click单击按钮消息
{
// CProgressStep m_ProgressStepStart;//CProgressStep为一个进度条类
for(int i=0;i <100;i++)
{
// m_ProgressStepStart.m_ProgressStep.SetStep(1);//debug一下会在这里报错
//m_ProgressStep 为CProgressCtrl m_ProgressStep;
// m_ProgressStepStart.m_Progr
[code=C/C++]CProgressStep m_ProgressStepStart;//CProgressStep为一个进度条类
//这句的作用不明白,CProgressStep这个类是什么样子的?

void CTree: nStartStep() //Click单击按钮消息
{
// CProgressStep m_ProgressStepStart;//CProgressStep为一个进度条类

for(int i=0;i <100;i++)
{
// m_ProgressStepStart.m_ProgressStep.SetStep(1);//debug一下会在这里报错
//m_ProgressStep 为CProgressCtrl m_ProgressStep;
// m_ProgressStepStart.m_ProgressStep.StepIt();
m_ProgressStep.SetStep(1);
m_ProgressStep.StepIt();
}
}

VCXinShou2008 2008-07-24
  • 打赏
  • 举报
回复
BOOL CProgressStep::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here

m_ProgressStep.SetRange(0,100);
m_ProgressStep.SetPos(0);
m_ProgressStep.SetStep(1);

m_ProgressStep.StepIt();

return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}



void CTree::OnStartStep() //Click单击按钮消息
{
CProgressStep m_ProgressStepStart;//CProgressStep为一个进度条类
for(int i=0;i <100;i++)
{
//m_ProgressStep 为CProgressCtrl m_ProgressStep;
m_ProgressStepStart.m_ProgressStep.StepIt(); //debug一下会在这里报错
}
}


CProgressStep这个类是什么样子的?
:只是一个对话框,上面只有一个控件"进度条",定义为CProgressCtrl m_ProgressStep

CTree这个类是什么样子的?
:这个类上有个按钮,名字“start step”

请问该怎么调用,希望你能亲手试一试 谢谢
菜牛 2008-07-24
  • 打赏
  • 举报
回复
你要获取那个对话框的指针去控制进度条,或者通过对话框的窗口句柄发消息。
VCXinShou2008 2008-07-24
  • 打赏
  • 举报
回复
现在的问题是 我的按钮和进度条控件不在一个类里面
VCXinShou2008 2008-07-24
  • 打赏
  • 举报
回复
这样debug没错了
但是当我点击按钮“start step”后,进度条不向前进展 只是在那里不动
我记得有个OnUpdateInitDialog()消息 但是我的添加消息里面没有这个句柄啊

BOOL CProgressStep::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here

m_ProgressStep.SetRange(0,100);
m_ProgressStep.SetPos(0);
m_ProgressStep.SetStep(1);

m_ProgressStep.StepIt();

return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
FORTUNATE99 2008-07-24
  • 打赏
  • 举报
回复
明白了
不过,CProgressStep m_ProgressStepStart;
然后// m_ProgressStepStart.m_ProgressStep.SetStep(1);//debug一下会在这里报错
//这时候控件还没有建立,当然报错
//m_ProgressStep 为CProgressCtrl m_ProgressStep;
// m_ProgressStepStart.m_ProgressStep.StepIt();

在CProgressStep的InitinizeDialog中完成上述操作
homejiji 2008-07-24
  • 打赏
  • 举报
回复
m_ProgressStep.SetRange(0,100);
设置成100步
m_ProgressStep.SetPos(0);
从0开始
m_ProgressStep.SetStep(1);这个设置你每执行一下m_ProgressStep.StepIt()一次进度条走多少步,也就是说设置一次就够了,

button里面
m_ProgressStep.StepIt(); 每执行一次走一步,执行100次进度条就满了,再走就又是重头开始。
VCXinShou2008 2008-07-24
  • 打赏
  • 举报
回复
CProgressStep这个类是什么样子的?
:只是一个对话框,上面只有一个控件"进度条",定义为CProgressCtrl m_ProgressStep

CTree这个类是什么样子的?
:这个类上有个按钮,名字“start step”

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧