MFC下GetParent()函數的用法&實現任意對話框消息的發送

                                       後端開發過程遇到的問題總結(6)

       最近遇到了一個問題,在對話框添加了一個TabControl控件,並定義了這個控件的類,然後在這個類下繼續寫,最後想通過一個按鈕關閉整個窗口,剛開始試了類似AfxGetMainWnd()->SendMessage(WM_CLOSE)或者利用父親指針end/destroy掉窗口之類的方法,然而當層數一定多時,無法再找到父窗口的句柄,於是我百度找有沒有類似的獲取父窗句柄的函數,最後找到了GetParent()函數成功解決了問題。


先看看這個函數的定義:

       函數功能:該函數返回一個指定子窗口的父窗口句柄

       函數原型:CWnd* GetParent( ) const;

返回值:

       如果成功,返回指向當前窗口的父窗口的指針。如果失敗,則返回NULL。

       測試:

       //點擊當前按鈕控件,關閉整個窗口。連續使用兩次即可獲得該窗口句柄指針,然後發送關閉消息給該窗口,即可實現想要的功能!

void CAddBook::OnBnClickedButton6()
{
	//AfxGetMainWnd()->SendMessage(WM_CLOSE);
	this->GetParent()->GetParent()->SendMessage(WM_CLOSE);
	// TODO: 在此添加控件通知處理程序代碼
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章