多线程进度条的显示问题

greenwater000 2010-05-13 04:43:01
VC中为什么我的进度条进度完成后,就消失了呢,如何让它完成后静止显示呢
...全文
651 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-05-25
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
洗洗睡去 2010-05-17
  • 打赏
  • 举报
回复
是不是超出了setrange的范围
向立天 2010-05-17
  • 打赏
  • 举报
回复
既然进度条是控件没理由消息啊
你ShowWindow(SW_HIDE)了?
greenwater000 2010-05-17
  • 打赏
  • 举报
回复
进度条显示函数
void CClrGradientPrgssCtrlDlg::OnTest() 
{
UpdateData(TRUE);

//设置参数
m_cProgress.SetRange(0, m_nRange);
m_cProgress.ShowPercent(m_bShowPercent);

m_cProgress.SetStartColor(m_clrStart);
m_cProgress.SetEndColor(m_clrEnd);
m_cProgress.SetTextColor(m_clrText);
m_cProgress.SetBkColor(m_clrBk);


for (int i=0; i <= m_nRange; i++)
{
PeekAndPump();
m_cProgress.SetPos(i);
}
}


//////////////////////////////////////////////
void CClrGradientPrgssCtrlDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
不明白为什么显示完了进度条就消失了
FireBirdCN 2010-05-15
  • 打赏
  • 举报
回复
结束后 设置SetPos
sanguomi 2010-05-15
  • 打赏
  • 举报
回复
估计你几个线程完后,其他线程又操作了
ccpaishi 2010-05-15
  • 打赏
  • 举报
回复
进度条和多线程有关系吗??信息量是少了点。
尹成 2010-05-15
  • 打赏
  • 举报
回复
不大明白你的问题,你看看你进度条进度完成后的自绘部分的代码
Eleven 2010-05-13
  • 打赏
  • 举报
回复
贴代码。。。
向立天 2010-05-13
  • 打赏
  • 举报
回复
相关代码贴出来看看
Snovate 2010-05-13
  • 打赏
  • 举报
回复
你的进度条放在什么地方?应当是进度为0了吧!
cdsnpeter 2010-05-13
  • 打赏
  • 举报
回复
详细描述你的问题,信息量不够。

15,979

社区成员

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

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