1. 程式人生 > >MFC中GetParent()的作用(轉)

MFC中GetParent()的作用(轉)

span pic sdn 作用 creat reat col win pan

原文轉自 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()的作用(轉)