注册 登录
编程论坛 VC++/MFC

关于DoModal函数调用出现的问题

k416687090 发布于 2016-11-23 16:19, 2493 次点击
我做了一个MFC的单文档程序,想调用一个对话框,现在出现的问题是可以运行出来,但是运行后对话框弹不出来,但是没有错误提示。
在工具栏做了一个“ID_OBJECT_TRANSPARENCY”按钮,在Resource View中的“Dialog”上点右键选择“Insert Dialog”,创建一个新的对话框模板,修改其ID为IDD_AISTRANSPARENCY,并且添加好了控件,并且创建好了相应的对话框类CDialogTransparency,然后在Doc中添加好按钮的函数,在函数中添加代码
void CInterventionDoc::OnObjectTransparency()
{   
    CDialogTransparency DialBox(myAISContext);
    DialBox.DoModal();
}
void CInterventionDoc::OnUpdateObjectTransparency(CCmdUI* pCmdUI)
{
  bool OneOrMoreInShading = false;
  for (myAISContext->InitCurrent();myAISContext->MoreCurrent ();myAISContext->NextCurrent ())
    if (myAISContext->IsDisplayed(myAISContext->Current(),1)) OneOrMoreInShading=true;
    pCmdUI->Enable (OneOrMoreInShading);   
}
关于CDialogTransparency的类声明和类实现都有,并且在头文件中也声明了“#include "AISDialogs.h"”

然后运行后,选中模型后 点击按钮  对话框弹不出来,但是也没有错误提示,不知道是什么原因
3 回复
#2
k4166870902016-11-25 14:53
有 没有大神帮忙给看看
#3
lyh123qaz2016-12-18 17:30
回复 楼主 k416687090
建好对话框模版后,双击对话框建立类。 然后在需要调用窗体头文件中 引用建立的类,创建类对象。然后可以在按钮单击事件下 DoModal 调用。
#4
shyoskyo2017-01-11 14:28
兄弟,你在CInterventionDoc类里面定义一个CDialogTransparency成员变量,然后在void CInterventionDoc::OnObjectTransparency()函数里面:变量.DoModal(); 即可
1