急:怎样在切分的窗口中显示非模态对话框

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:08:28
已经切分了窗口,现在是要在一个窗口中显示另一个非模态对话框,应该怎么实现?

void CMyView::OnShow()
{
// TODO: Add your command handler code here
CDIALOG1 dlg;
dlg.Create(IDD_DIALOG1) ;
dlg.ShowWindow(SW_SHOW);
}
作为非模态对话框,定义的dlg是一个局部对象,那么执行完dlg.ShowWindow(SW_SHOW);后一到}符号处OnShow()函数结束,dlg这个局部对象的生命周期也到了,系统会随之把为dlg所关联的对话框资源也销毁,所以你看不到对话框显示,你把dlg改变成CMyView的类成员变量来定义就好了.
在一个非模态对话框中创建一个按钮调用DestroyWindow 能够关闭该对话框,而在该非模态对话框的标题栏上点“关闭”结果仍然只是隐藏了该对话框,如何做才可以点标题栏上的“关闭”也关闭该对话框呢?
添加OnClose消息映射,在里头DestroyWindow

我也不是很懂,也不知道这些信息能不能给你启示?

void CMyView::OnShow()
{
// TODO: Add your command handler code here
CDIALOG1 *dlg=new CDIALOG1(); //在堆上申请一CDIALOG1类型对象内存单元
dlg->Create(IDD_DIALOG1) ;
dlg->ShowWindow(SW_SHOW);
}
显示一非模态对话框,在析构函数调用delete 释放申请的内存单元