[英]MFC How to close a modeless dialog when switching views
我有一个包含无模式对话框的视图。
一切正常,除了与对话框交互发送消息以修改当前活动视图上的对象。 当我切换到新视图或其他视图时,它会导致压缩,因为该视图中不存在该对象。
我想问一下,只要切换视图,如何关闭无模式对话框?
它应该在视图类或文档类中处理吗?
消息路由是Dialog - > send user defined message - > mainframe - > get current active view - >传递消息 - > view message handle接收消息
谢谢
并且,在视图的框架中执行它可能更有意义。 所以...
在.h:
class MyFrm: public CFrameWnd
{
MyDialog dlg;
};
在.cpp中:
MyFrm::MyFrm( )
:dlg( this )
}
void MyFrm::OnInitialUpdate()
{
tagDlg.Create( this );
tagDlg.ShowWindow( SW_NORMAL );
}
如果您想要切换对话框,请将菜单项作为开关。 您可以:而不是在OnInitialUpdate
中创建它:
void MyFrm::OnToggleDlg( )
{
if( ! dlg.GetSafeHwnd( ) )
{
dlg.Create( this );
dlg.ShowWindow( SW_NORMAL );
}
else
dlg.DestroyWindow( );
}
我希望这是有道理的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.