因为你的用CreateWindowEx创建的窗口没有和你的CWzdSplash类关联起来.
可以用CWzdSplash::SubclassWindow子类化CreateWindowEx返回的窗口句柄
也可以直接调用 CWnd::CreateEx (可以直接调用父类的函数)

解决方案 »

  1.   

    我把CreateWindowEx换成
    CreateEx(NULL, AfxRegisterWndClass(0), _T(""), WS_POPUP | WS_VISIBLE | WS_BORDER,
    rect, NULL, NULL);
    可以正常显示画面,但是画面一显示完就出错了,求解
      

  2.   

    HBITMAP old = dcComp.SelectObject(&m_bitmap);dc.BitBlt(0, 0, bitmap.bmWidth, bitmap.bmHeight, &dcComp, 0, 0, SRCCOPY);
    后:
    dcComp.SelectObject(old);
      

  3.   

    还是一样的,我调试了下,发现在InitInstance中EnableTaskbarInteraction(FALSE);这里出错
      

  4.   

    CWinApp::EnableTaskbarInteraction最新的vs2010中的函数。定义是否能够和 Windows 7 任务栏进行交互去掉看看。
      

  5.   

    去掉就可以了。
    但是为什么呢?而且去掉了不是就不能够和 Windows 7 任务栏进行交互了吗
      

  6.   

    还有一个问题。void CWzdSplash::Create(UINT nBitmapID)这个初始化函数中,
    调用CreateEx(NULL, AfxRegisterWndClass(NULL), _T(""), WS_POPUP | WS_VISIBLE | WS_BORDER,
    rect, NULL, NULL);
    这里创建的窗口没有指定窗口过程,这样好吗?窗口可以不要窗口过程吗?
    还有CreateEx创建的窗口是不是默认就和这个类关联在一起,不然调用
    wndSplash.UpdateWindow();           //send WM_PAINT
    它怎么会响应?
      

  7.   

    CWnd 的 CreateEx 调用默认的 WinProc