我有一个包含无模式对话框的视图。
一切正常,但与对话框的交互会发送一条消息,以修改当前活动视图上的对象。当我切换到新视图或其他视图时,它会导致暗恋,因为该对象在该新视图中不存在。
我想问一下切换视图时如何关闭无模式对话框?
应该在视图类还是文档类中处理?
消息路由为对话框->发送用户定义的消息->主机->获取当前活动视图->传递消息->视图消息句柄接收消息
谢谢
答案 0 :(得分:0)
而且,在视图框架中执行此操作可能更有意义。所以...
在.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( );
}
我希望这是有道理的。