为什么窗口关闭后进程不退出啊?
那位大侠知道啊?

解决方案 »

  1.   

    窗口关闭了,但是有无发QUIT消息通知系统啊?没有的话加上试试
      

  2.   

    一般这种错误是因为GetMessage( hWnd...这样的代码引起的,改成GetMessage( NULL...即可。
      

  3.   

    还有一种可能就是析构函数中添加了不该添加的东西,比如说如果没有初始化com却在析构函数中加入CoUninitialize,进程就会一直卡死在上面,或者有时候用delete删除一些已经Uninitialize的对象也会出现这种情况
    debug一下吧,不难找
      

  4.   

    由于提供的信息不全面暂且认为你的程序主界面为CMainFrame派生类,在该类中添加命令按钮或菜单响应函数OnExit,
    在函数中添加DestroyWindow();例如
    void CMainFrame::OnExit()
    {
       DestroyWindow();
    }
      

  5.   

    是不是有线程循环调用GetMessage没有break掉?
      

  6.   

    没有。就是用MFCAppWizard建的用来打开图片的单文档程序。就在OnDraw、OnOpenDocument里边加了几行代码而已。没有线程什么的。
      

  7.   

    附上代码:
    BOOL CCannyDoc::OnOpenDocument(LPCTSTR lpszPathName) 
    {
    if (!CDocument::OnOpenDocument(lpszPathName))
    return FALSE;

    // TODO: Add your specialized creation code here
    TheImage.Load(lpszPathName,0);
    return TRUE;
    }
    ...
    void CCannyView::OnDraw(CDC* pDC)
    {
    CCannyDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
    CvvImage &img=pDoc->TheImage;
    CRect r;
    GetClientRect(&r);
    img.DrawToHDC(pDC->GetSafeHdc(),r);
    }
    改动的地方就这两处。
      

  8.   

    搞定了。
    原来是OpenCV的问题。
    多谢楼上几位!