CWnd::DestroyWindow
Bağlı Windows pencere bozar CWnd nesnesi.
virtual BOOL DestroyWindow( );
Dönüş Değeri
Pencere yok, sıfır olmayan; Aksi halde 0.
Notlar
DestroyWindow Üye işlevi devre dışı bırakarak girdi odağını kaldırmak için pencere uygun iletileri gönderir. Onu da pencerenin menü bozar, uygulama sırası temizler, bekleyen süreölçer bozar, Pano sahiplik kaldırır ve Pano Görüntüleyicisi zinciri, sonları CWnd viewer zincirinin en üstünde. Gönderdiği wm_destroy ve wm_ncdestroy ileti penceresine. Yok yok CWnd nesnesi.
DestroyWindowTemizleme gerçekleştirmek için bir yer tutucudur. Çünkü DestroyWindow sanal bir işlev birinde gösterilen CWnd-türetilmiş sınıf sınıf görünümünde. Ancak bu işlevi geçersiz kılma bile sizin CWnd-türetilmiş sınıf, DestroyWindow mutlaka çağrılmıyor. DestroyWindow Adlı istiyorsanız, onu kendi kodunuzu çağırabilir sahip sonra mfc kodunda çağrılmaz.
Örneğin, geçersiz kılınmış varsayalım DestroyWindow , bir CView-türetilmiş sınıf. mfc kaynak kodu değil çağrısından DestroyWindow herhangi birinde, CFrameWnd-türetilmiş sınıfları, geçersiz kılınmış sizin DestroyWindow açıkça gerektirmediği sürece çağrılacak değil.
Herhangi bir windows ana penceresi ise, üst pencere bozulduğunda bu alt pencereleri otomatik olarak yok edilir. DestroyWindow Üye işlev yok eder, alt pencereleri sonra pencere.
DestroyWindow Üye işlevi tarafından oluşturulan ve kalıcı olmayan iletişim kutuları da bozar CDialog::Create.
CWnd Edilmeden alt pencere olduğu ve sahip olmadığı WS_EX_NOPARENTNOTIFY stil kümesi, daha sonra WM_PARENTNOTIFY üst iletisi gönderdi.
Örnek
// 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();
}
Gereksinimler
Başlık: afxwin.h