当我们想关闭控件句柄,节省资源时,可以::SendMessage (hand,WM_CLOSE,NULL,NULL)此时控件句柄被关闭。
此时m_hWnd被CloseHand后并被赋予了NULL。虽然此时这个控件的没有被析构,但是当我们调用CWnd的方法时会出现assert警告框,这是为什么呢?_AFXWIN_INLINE void CWnd::GetWindowRect(LPRECT lpRect) const
{ ASSERT(::IsWindow(m_hWnd)); ::GetWindowRect(m_hWnd, lpRect); }等所有CWnd 方法在调用成员函数时都会判断窗口句柄是否还有效,所以会出现警告框。