2009-04-14 3 views
1

Ich arbeite mit einer multiplen Top-Level-Windows-Anwendung. Das Hauptfenster ist ein MDIFrameWnd, ich habe etwas Code in CWinApp eingefügt, um m_pMainWnd zu wechseln, wenn das oberste Fenster der Switch-Ebene aufgerufen wird. Es funktioniert gut, aber feuern Sie eine Bestätigung, wenn ich eines der Hauptfenster schließe. Diese Assertion ist von CMDIChildWnd:Verwenden von MFC MDI mit mehreren Top-Level-Fenster

void CMDIChildWnd::AssertValid() const 
{ 
    CFrameWnd::AssertValid(); 
    ASSERT(m_hMenuShared == NULL || ::IsMenu(m_hMenuShared)); 
} 

Es sieht wie das Fenster geschlossen werden, um das gemeinsame Menü freigeben. Ich versuche herauszufinden, wo das Menü im MFC-Framework freigegeben ist, kann es aber nicht finden. Könnte mir jemand helfen? Dank ..

Antwort

1

Ich fand das Problem ist. Ein Menüleisten-Steuerelement im Hauptframe wird das Menü "destory" in seinem dtor. Danke an alle.

1

Die CMultiDocTemplate-Klasse besitzt das gemeinsame Menü (es zerstört m_hMenuShared in seinem Destruktor).