我在按钮的实现里加了生成对话框的功能,代码如下:
//连续拍摄,需输入一个帧数
void CAdvanceSetDlg::OnBtnContinuousCapture() 
{
    CCphotoSetDlg dlg;
    if(dlg.DoModal() == IDOK)
    {
m_uTotalOfFrame = dlg.m_uNumOfFrame;
//启动采集时钟
SetTimer(30, dlg.m_uIntervalTime, NULL);
    }
}
结果界面上没有正常显示,然后我意外的发现只要按下alt键就显示了,其实调用是成功的,那怎么会不能正常显示了,这是什么原因?该如何解决?
还有其他的自定义的弹出框也是如此,但是afxMessagbox是可以弹出的。

解决方案 »

  1.   

    dlg.m_uIntervalTime是变量?
    应该是个函数吧?
      

  2.   

    显示对话框,就是这条语句dlg.DoModal()本来是会显示一个模态对话框的,但是没有显示,这时界面上的按钮都不能按了,说明模态对话框已经产生,只是没有可视,如果我按下alt键后,这个对话框就出现了,我不知道什么原因,很急呢
      

  3.   

    这里就是不写if语句,只写dlg.DoModal也不会显示对话框呢,是不是那里跟这个冲突啊
      

  4.   

    问题是不是SetTimer(30, dlg.m_uIntervalTime, NULL);后,没有killtimer?
    dlg.DoModal应该不是原因
      

  5.   

    换个名字呢CCphotoSetDlg dlg1;
      

  6.   

    我试了你们的方法,还是不行的。
    CSysParamsetDlg dlg1;
    AfxMessageBox("HELLO");//显示
    int ret=dlg1.DoModal();//没有显示
    这是其他按钮的动作,同样的情况,有人碰到过这样怪的事情吗,如何解决呢?
      

  7.   

    是不是你的对话框里SetCapture了,文档视图类的程序有这样的问题,可以给你个参考
      

  8.   

    是不是自定义Dialog类的问题?会不会产生了死循环?
      

  9.   

    没有SetCapture,我的程序比较大,我现在就是在菜单里添加一个项,然后该项所对应的函数里实现生成一个模态对话框,然后显示
      

  10.   

    在你的菜单处理中改下试试:this->SetCapture();//捕捉CCphotoSetDlg dlg;
        if(dlg.DoModal() == IDOK)
        {
    m_uTotalOfFrame = dlg.m_uNumOfFrame;
    //启动采集时钟
    SetTimer(30, dlg.m_uIntervalTime, NULL);
        }::ReleaseCapture();//释放
      

  11.   

    而且只有左边的alt有效,这个问题棘手,我真是无从下手了,该项目马上要交给……
      

  12.   

    非常感谢你,但是还是不行呢。我的这些代码在MainFrm.cpp里的,对话框也是没有问题的,我以前的代码可以弹出对话框的,后来改了很多,加了很多功能以后,我也不知道什么时候它就弹不出来了,所以我现在真不好找出错的原因呢
      

  13.   

    不好意思,原来我的右边的alt是坏的