我用一个SDI程序,一个菜单负责弹出一个对话框,对话框上有一个进度条控件,对话框是一个类。我在视图中调用显示对话框,显示之前对进度条初始化,但运行出错,对话框类里的递增进度条却可以很好的执行,为什么我用setrange等对进度条初始化的时候会运行出错呢?

解决方案 »

  1.   

    进度条初始化应该放在你的CMyDialog::OnInitDialog()过程中setrange应用于进度条初始化之后
      

  2.   

    没有什么特别的啊!progress是那个对话框类。void CTestView::OnProgress() 
    {
    // TODO: Add your command handler code here
        progress pro;
        pro.m_start = "Starting...";
        pro.m_progress.SetRange(0,2);
        pro.DoModal();
        
    }
      

  3.   

    SDI可没有OnInitDialog()我在对话框编辑器里做好的,如果不要setrange,在对话框类里加入递增函数,进度条可以正常显示增加的。
      

  4.   

    你可以设置两个成员变量,然后再OnInitDialog中去掉SetRange();像你这样调用,你必须判断一下ProgressCtrl是否已经Create了,要不然肯定有错萨!!