MFC模态对话框与非模态对话框

模态对话框

模态对话框在使用时其他页面被屏蔽不可以操作,只能在对话框中操作,在对话框关闭时才能对其他页面进行操作。

方式一:先定义一对话框,加入相应控件,添加一个对话框类,添加相应控件的控件变量(静态和动态),然后在需要弹出该对话框的地方定义一个该对话框的对象。调用对话框类的DoModal弹出该对话框进行操作。

CDlgAddDev dlg;

if(dlg.DoModal() == IDOK)

{...}


方式2:使用AfxMessageBox函数,给个简单的示例。

AfxMessageBox("请选择完整节点线路单元号!");




非模态对话框

非模态对话框弹出后依然可以对主窗口进行操作,最好的实例就是txt中的查找,查找的同时可以修改。同样定义一个对话框,添加一个对话框类。

CDlgSearch *pTD;

pTD=new CDlgSearch();
//pTD->pos=pos;
//pTD->ClassifyFlag=ClassifyFlag;
//pTD->Tree=&m_AlarmTree;
//pTD->List=&m_listInfo;
pTD->Create(IDD_Search);
pTD->ShowWindow(SW_SHOWNORMAL);

注释部分为相关变量,CDlgSearch 类名,IDD_Search对话框ID号。类似查找这样的,不只运用一次。不需要每次使用的时候都new CDlgSearch();可以直接弹出之前的对话框,清除内容即可。

if(pTD!=NULL)
{

pTD->m_UName="";
pTD->m_Unit="";
pTD->m_Line="";
pTD->m_Node="";
pTD->UpdateData(false);
pTD->ShowWindow(SW_SHOWNORMAL);
}
else
{
pTD=new CDlgSearch();
pTD->pos=pos;
pTD->ClassifyFlag=ClassifyFlag;
pTD->Tree=&m_AlarmTree;
pTD->List=&m_listInfo;
pTD->Create(IDD_Search);
pTD->ShowWindow(SW_SHOWNORMAL);
}


这里只对我之前做的简单小程序做了一个简单的叙述。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值