後端開發過程遇到的問題總結(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: 在此添加控件通知處理程序代碼
}