要使用进度条,希望能做到中止进度条的效果,请问用windows计时器如何实现?

解决方案 »

  1.   

    在计时器中递增进度条,在一个中止按钮中killtimer
      

  2.   

    进度条的使用很简单啊!随时使用CProgressCtrl::SetPos设置位置就可以了
    但是你的要求别人看不明白,没发帮你
      

  3.   

    我表达这么不明白吗?就是用计时器,每隔一秒就处理一次是否有中止进度条的消息,就这么简单,只是我按照方法做没反应,觉得奇怪.

    for(int i=0;i<500;i++)
    {
    m_progress.offsetpos(i);
    sleep(50);
    }
    运行时,没办法点击"退出"的按钮.而用
    int i=0;
    void CprocessDlg::OnTimer(UINT nIDEvent) 
    {
    if (in<100)
    {
    in+=1;
    m_progress.OffsetPos(in);
    }
    CDialog::OnTimer(nIDEvent);
    }
    在计时器里增加,但进度条根本就没反应.
      

  4.   

    第一种方法因为sleep造成阻塞,导致消息队列中的消息得不到处理.第二种应该是可以的,但不知你SetTimer了没有?
      

  5.   

    1:建议搂住在另外的线程里面处理m_progress.OffsetPos(in);
    2:线确定你的程序有没有进入到timer里面去包括in有没有赋初值
      

  6.   

    int in=0;
    BOOL CprocessDlg::OnInitDialog()
    {
    .............
    SetTimer(1,1000,NULL);
    ...............
    }是不是这样初始化呢?