CWnd::DestroyWindow
销毁Windows窗口附加到 CWnd 对象。
virtual BOOL DestroyWindow( );
返回值
非零,则销毁窗口;否则为0。
备注
DestroyWindow 成员函数将相应信息到窗口停用并移除输入焦点。 如果 CWnd 是在浏览器链的顶部,它销毁windows的菜单中,对于应用程序队列,销毁处理计时器,还移除剪贴板所有权,以及中断剪贴板浏览器链。 其发送 WM_DESTROY 和 WM_NCDESTROY 信息到窗口。 但不销毁 CWnd 对象。
DestroyWindow 是进行清理一个位置容纳器。 由于 DestroyWindow 是虚函数,在所有 CWnd-在选件类视图的派生类公开。 但,即使您重写在您的 CWnd的此功能的派生类,DestroyWindow 不一定调用。 如果 DestroyWindow 在MFC代码未调用,则必须显式调用它在代码中,如果您希望此调用。
假定,例如,重写了 CView的 DestroyWindow 派生类。 因为MFC源代码不对 DestroyWindow 其任何 CFrameWnd派生类,重写的 DestroyWindow 不会调用,除非您显式调用它。
如果窗口是任何窗口的父级,自动销毁。这些子窗口,当销毁时父窗口。 DestroyWindow 成员函数首先然后销毁子窗口。
DestroyWindow 成员函数来销毁 CDialog::Create创建的无模式对话框。
如果销毁的 CWnd 是子窗口,并没有 WS_EX_NOPARENTNOTIFY 样式设置,则 WM_PARENTNOTIFY 发送到父级。
示例
// CModeless is a CDialog class representing a modeless dialog
// Destruction of the modeless dialog involves calling DestroyWindow in
// OnOK() & OnCancel() handlers
void CModeless::OnOK()
{
if (!UpdateData(TRUE))
{
TRACE(_T("UpdateData failed during dialog termination\n"));
// The UpdateData routine will set focus to correct item
return;
}
DestroyWindow();
}
void CModeless::OnCancel()
{
DestroyWindow();
}
要求
Header: afxwin.h