Re[2]: CRichEdit & DDE bug в VC++.NET 2003
От: Alexeib Япония  
Дата: 05.08.04 11:25
Оценка:
PD>Протрассируй вызов OpenDocumentFile.

BOOL CMDIChildWnd::DestroyWindow()
{
    if (m_hWnd == NULL)
        return FALSE;

    // avoid changing the caption during the destroy message(s)
    CMDIFrameWnd* pFrameWnd = GetMDIFrame();
    HWND hWndFrame = pFrameWnd->m_hWnd;
    ASSERT(::IsWindow(hWndFrame));
    DWORD dwStyle = SetWindowLong(hWndFrame, GWL_STYLE,
        GetWindowLong(hWndFrame, GWL_STYLE) & ~FWS_ADDTOTITLE);

    MDIDestroy();  // <---- после этого вызова CWinApp::m_pMainWnd становиться == NULL

    if (::IsWindow(hWndFrame))
    {
        ASSERT(hWndFrame == pFrameWnd->m_hWnd);
        SetWindowLong(hWndFrame, GWL_STYLE, dwStyle);
        pFrameWnd->OnUpdateFrameTitle(TRUE);
    }

    return TRUE;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.