CFormView的SDI使用了SplashScreen,因此App里面有个PerTranslateMessage,首先调用了CSplashWnd的PreTranslateAppMessage,原来都是可以用的,最近我在App里面添加了一些东西,现在就不行了,每次都是在Debug版本运行时,App的PerTranslateMessage都要出错,AssertFailure,提示在wincore.cpp的875行--就是这一句
ASSERT(::IsWindow(m_hWnd));
其中m_hWnd的unused提示
unused CXX0030: Error: expression cannot be evaluated
我都不知道问题到底出在哪儿,哪位遇到过这种情况的吗,救命啊
App中有对话框以及注册表操作(这是后面加进来的,没出问题之前没有加进来的)

解决方案 »

  1.   

    如果CSplashWnd的m_hWnd==NULL就不调用它的PreTranslateAppMessage
      

  2.   

    这表明你的一个操作的窗口还没创建,在调试的时候,打开callstack看是你哪行一出错,然后,在这个出错的地方,加一句,if(IsWindow(yourwindow.m_hwnd))
    {
    //doing sm.
    return true;
    }
      

  3.   

    我将注册表和对话框的都去掉,SplashScreen也去掉,还是会出错
      

  4.   

    楼上那位能不能说得明白一点,在wincore.cpp中如何加,可以修改的吗,而且我还不知道到底是哪个窗口出错,谢谢了