如何关闭应用程序,包括所有的子窗口打开,MFC(How to Close application i

2019-10-19 05:18发布

我已经开发了这是当用户做任何运动或者使用鼠标和键盘一定时间后关闭的应用程序。 该程序正常工作时,我的应用程序的主屏幕打开时,程序退出,没有任何异常。 在一个场景是我的主屏幕是开放的,在主屏幕上点击按钮,另一个对话框打开,和用户没有给出输入无论是从键盘或鼠标,在这种情况下,应用程序有异常关闭。 下面的代码。

void CMainFrame::OnTimer(UINT_PTR nIDEvent)
{
    LASTINPUTINFO li;
    li.cbSize = sizeof(LASTINPUTINFO);
    ::GetLastInputInfo(&li);
    // Calculate the time elapsed in seconds.
    DWORD te = ::GetTickCount();
    int elapsed = (te - li.dwTime) / 1000;
    TRACE(_T("\n%d"),elapsed);

    if(m_nAutoLogOffTime < elapsed)
    {
        switch (m_nAutoLogOffTime)
        {
        case AUTO_LOGOF_1MIN:
            PostMessage(WM_CLOSE);          
            break;
        case AUTO_LOGOF_3MIN:
            PostMessage(WM_CLOSE);
            break;
        case AUTO_LOGOF_10MIN:
            PostMessage(WM_CLOSE);
            break;
        }

    }


    CFrameWnd::OnTimer(nIDEvent);
}

所以,如果我在不同的窗口除了大型机和他们如果PostMessage(WM_CLOSE)被调用,然后它给例外。 所以,我可以关闭应用程序无一例外,即使另一个对话框打开。 请帮我的urgent.Thanks提前。 错误出现在doccore.h请检查图像

Answer 1:

ASSERT( AfxGetMainWnd()!=NULL );
AfxGetMainWnd()->SendMessage(WM_CLOSE);


文章来源: How to Close application including all the child windows opened, MFC
标签: c++ mfc