在我的主程序中
if(ProgressDlg ==NULL) //建立有进度条的非模式对话框
    {
        ProgressDlg = new ProgressDisplay; //ProgressDisplay是在资源中加入的对话框后添加                       //的类
        ProgressDlg ->Create(IDD_PROGRESS,this);
    }
ProgressDlg ->ShowWindow(SW_SHOWNOACTIVATE);//显示非模式对话框 CProgressCtrl *pProg=(CProgressCtrl*)ProgressDlg ->GetDlgItem(IDC_PROGRESS1);
pProg->SetRange(0, gCaptureBmpFileNumber);//设定进度条范围为0-70在我的程序中的ONOK()退出时,添加:
//卸载对话框
    if(m_ProgressDlg != NULL)
    {
delete m_ProgressDlg ; //千万不能忘了
    }
这就是该对话框调用的过程.该对话框可以按CANCEL按钮退出,但是整个程序退出后,该对话框又显示出来了.