HELP:无模式对话框消息响应 主窗口弹出了3个无模式对话框A,B,C当其中一个无模式对话框关闭时候主窗口怎么能知道关闭的是A,B还是C 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void CChildrenDlg::OnClose() { // TODO: Add your message handler code here and/or call default CWnd* pWnd = AfxGetMainWnd(); AfxGetMainWnd()->SendMessage(WM_EXITCHILDRENUI, 0, 1); CDialog::OnClose();}ABC都是CChildrenDlg类的窗口,关闭时响应的都是同一个OnClose(),该怎么设置? App类里不支持Dlg成员???问一下??? 无模式对话框 的关闭 应该是隐藏吧!用 IsWindowVisible() 判断一下 那个隐藏了就知道了嘛! 主窗口类加个成员变量.. 子窗口Close时 用GetParent() 去改写成员变量^_^比较笨的办法... 无模式对话框 的关闭 应该是隐藏吧!-------------无模式对话框 的关闭不会响应 OnDestroy()函数只有主窗口关闭时候才会跳到OnDestroy()这样能说明它是隐藏 而不是关闭吗? 父窗口建立子对话框的时候,设置一个子对话框的成员变量标记。子窗口关闭的时候,将那个变量发送回去……sendmessage发过去 还有,你建非模态对话框的时候,父窗口应该知道那三个子窗口的指针的,不然你怎么销毁子窗口?除非用PostNCDestroy…… 还有,你建非模态对话框的时候,父窗口应该知道那三个子窗口的指针的,不然你怎么销毁子窗口?除非用PostNCDestroy……===========================我就需要知道是哪个子窗口关闭然后在主窗口把它给销毁void CChildrenDlg::OnClose() {// TODO: Add your message handler code here and/or call defaultAfxGetMainWnd()->SendMessage(WM_EXITCHILDRENUI, 0, 1);CDialog::OnClose();}三个窗口关闭时候给主窗口发送的都是这个消息 父窗口建立子对话框的时候,设置一个子对话框的成员变量标记。子窗口关闭的时候,将那个变量发送回去……sendmessage发过去===================能否帮忙给段代码? 销毁非模态子对话框大约有这么两种方法:1.重载虚函数PostNCDestroy……在那地方写delete this,全都省事了……但是这样有个小缺点:父窗口不知道子窗口关了。内存泄漏倒是没有,只是父窗口可能要在子窗口关闭的时候做点事,他不知道子窗口啥时候关就不好办了……:)2.父窗口在建立子窗口的时候,告诉子窗口自己的地址,CChildDlg *m_pChildDlg1 = new CChildDlg...;m_pChildDlg1->m_pParent = this;m_pChildDlg1->ShowWindow(SW_SHOW);关闭的时,在子窗口OnClose事件里发送个消息给父窗口,PostMessage(/*自定义消息*/,0,/*自己的地址*/);父窗口处理这个消息:...//做点其它的……if(m_pChild1) delete m_pChildDlg1; m_pChildDlg1->m_pParent = this; /////////这句 是父窗口告诉告诉子窗口自己的地址?关闭的时,在子窗口OnClose事件里发送个消息给父窗口,PostMessage(/*自定义消息*/,0,/*自己的地址*/);/////////子窗口如何获取自己的地址?Thanks m_pChildDlg1->m_pParent = this;this就是自己啊~相当于自己的地址了~ 说错说错~m_pChildDlg1->m_pParent = this;是父窗口告诉子窗口自己地址。子窗口知道了父窗口地址就可以Postmessage……m_pChildDlg1->m_pParent->PostMessage(/*自定义消息*/,0,this);即可 OnLButtonDown捕捉的坐标系的问题 设置断点可以读,快速运行后,却读不到串口发送来的数据 一个想不明白的地方 基于vc的windows桌面远程监控怎么入手? 在线等,急 提示错误 error C2059: syntax error : ';' 请问在CListCtrl在使用了InsertItem函数与SetItemText函数加入了一条记录后为什么显示不出来? EXE中的HTML资源如何移植到DLL调用? 串口通讯有几种方法,在单文档类型中如何使用? 送分啦,关于定时器 全局字体变量,如何初始化 [求助]关于CSingleDocTemplate(...)函数的第一个形参问题(急)
{
// TODO: Add your message handler code here and/or call default
CWnd* pWnd = AfxGetMainWnd();
AfxGetMainWnd()->SendMessage(WM_EXITCHILDRENUI, 0, 1);
CDialog::OnClose();
}
ABC都是CChildrenDlg类的窗口,关闭时响应的都是同一个OnClose(),该怎么设置?
子窗口Close时 用GetParent() 去改写成员变量
^_^比较笨的办法...
-------------
无模式对话框 的关闭不会响应 OnDestroy()函数
只有主窗口关闭时候才会跳到OnDestroy()
这样能说明它是隐藏 而不是关闭吗?
子窗口关闭的时候,将那个变量发送回去……sendmessage发过去
除非用PostNCDestroy……
除非用PostNCDestroy……
===========================
我就需要知道是哪个子窗口关闭
然后在主窗口把它给销毁void CChildrenDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
AfxGetMainWnd()->SendMessage(WM_EXITCHILDRENUI, 0, 1);
CDialog::OnClose();
}
三个窗口关闭时候给主窗口发送的都是这个消息
子窗口关闭的时候,将那个变量发送回去……sendmessage发过去
===================
能否帮忙给段代码?
1.重载虚函数PostNCDestroy……在那地方写delete this,全都省事了……
但是这样有个小缺点:父窗口不知道子窗口关了。
内存泄漏倒是没有,只是父窗口可能要在子窗口关闭的时候做点事,他不知道子窗口啥时候关就不好办了……:)2.父窗口在建立子窗口的时候,告诉子窗口自己的地址,
CChildDlg *m_pChildDlg1 = new CChildDlg...;
m_pChildDlg1->m_pParent = this;
m_pChildDlg1->ShowWindow(SW_SHOW);
关闭的时,在子窗口OnClose事件里发送个消息给父窗口,
PostMessage(/*自定义消息*/,0,/*自己的地址*/);
父窗口处理这个消息:
...//做点其它的……
if(m_pChild1)
delete m_pChildDlg1;
/////////这句 是父窗口告诉告诉子窗口自己的地址?关闭的时,在子窗口OnClose事件里发送个消息给父窗口,
PostMessage(/*自定义消息*/,0,/*自己的地址*/);
/////////子窗口如何获取自己的地址?Thanks
this就是自己啊~相当于自己的地址了~
m_pChildDlg1->m_pParent = this;是父窗口告诉子窗口自己地址。子窗口知道了父窗口地址就可以Postmessage……
m_pChildDlg1->m_pParent->PostMessage(/*自定义消息*/,0,this);
即可