使CDialog可见

时间:2009-08-27 01:53:24

标签: visual-studio visual-c++ modal-dialog

我正在尝试使用带有复选框的DialogBox。我将它添加到资源文件,创建了对话框模板,并为对话框添加了类和事件处理程序。据我了解,现在我只需要创建一个类的实例并调用DoModal()。

<小时/> 所以,我已经回去做了一些调查,然后玩了一些代码,这就是我现在所拥有的

UsingMSPSK PSKDialog;

    if( PSKDialog.DoModal() == IDOK)
    {


    }
    else {
        AfxMessageBox("Not IDOK");
    }
    CTempoDialog TempoDialog;


    if(TempoDialog.DoModal() == IDOK)
        {

        }



当我运行它时,我没有从PSLDialog.DoModal()调用中获得任何对话框,但是我得到了AfxMessageBox,然后出现了TempoDialog。我在调试器中逐步执行DoModal()调用,它似乎运行并正确返回,所以我无法弄清楚对话框的位置。

我只是再次查看DoModal()调用的返回值,它似乎立即退出,我该如何解决?

2 个答案:

答案 0 :(得分:2)

它应该可以使对话框可见 - 假设对话框模板具有WS_VISIBLE样式,依此类推。也许对话框初始化失败了? “DoModal”对话框是否立即调用退出?这表示无法创建窗口。

您使用的是哪个版本的Visual Studio?版本6过去不允许您在尚未加载的代码上设置断点。或者,确保已加载符号。在“模块”窗口中,右键单击包含代码的dll,然后选择“加载符号”。您是使用符号信息还是发布版本进行调试构建?确保它是最简单的调试体验的调试版本。

答案 1 :(得分:0)

我不确定为什么会这样,但我添加的复选框是一个ActiveX控件,它打破了我的对话框。当我发现工具箱窗格,并从那里拖动一个复选框时,它工作正常。