MFC中GetParent()的作用(转)

Posted ~小小鸟~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中GetParent()的作用(转)相关的知识,希望对你有一定的参考价值。

原文转自 https://bbs.csdn.net/topics/390540690

 

1、假如创建一个非模态的窗口,在如下两种做法里任选一种。
(1) chatting.m_lpDlg = new CChatDialog;
chatting.m_lpDlg->Create(IDC_DIALOG_CHAT,this); 
chatting.m_lpDlg->ShowWindow(SW_SHOW); 

(2) chatting.m_lpDlg = new CChatDialog(this); 
chatting.m_lpDlg->ShowWindow(SW_SHOW); 

因为通常带参构造函数通常会创建窗口。
你创建两个窗口,你只能使用一个,搞不好会有资源泄漏。
除非你的单参数构造函数,什么也不做。
否则
chatting.m_lpDlg = new CChatDialog(this); 
chatting.m_lpDlg->Create(IDC_DIALOG_CHAT,this); 
的代码相当于
chatting.m_lpDlg = new CChatDialog(); 
chatting.m_lpDlg->Create(IDC_DIALOG_CHAT,this); 
chatting.m_lpDlg->Create(IDC_DIALOG_CHAT,this); 
Create函数调用两次,自然以第二次调用为准,不过,资源泄漏,没法解决。

2、在CChatDialog里面GetParent()获得的就是创建时传进去的this

以上是关于MFC中GetParent()的作用(转)的主要内容,如果未能解决你的问题,请参考以下文章

[转]MFC子线程中更新控件内容的两种办法

MFC 子窗口怎么得到父窗口的父窗口的指针,并对父窗口的父窗口的按钮进行操作??

MFC中TAB控件使用问题

(转)InitInstance函数的理解

MFC发送自定义消息-PostMessage和SendMessage

在不关闭子窗口的情况下从子窗口返回焦点到父窗口(在mfc visual studio中)