我在一个对话框中创建了一个view,创建方法如下:头文件:
CMyView m_pView;
CPP文件:
BOOL CMyDlg::OnInitDialog() 
{
CDialog::OnInitDialog();

CCreateContext context;
CWnd* pFrameWnd = this;
context.m_pCurrentDoc = new CMyDoc;
context.m_pNewViewClass = RUNTIME_CLASS(CMyView);
m_pView = (CVTblColViewsView*)((CFrameWnd*)pFrameWnd)->CreateView(&context);
ASSERT(m_pView); CRect rc;
GetClientRect(&rc);
rc.left += 7;
rc.top += 7;
rc.right -= 7;
rc.bottom -= 7+35; m_pView->MoveWindow(rc);
m_pView->ShowWindow(SW_NORMAL);

return TRUE;  
}在MyView中,重载消息WM_MOUSEACTIVE:
int CMyView::OnMouseActivate( CWnd* pDesktopWnd, UINT nHitTest, UINT message )
{
return MA_ACTIVATE;
}在Debug版本中可以正常运行,但是在Release版本中,当鼠标在view中点击时,程序崩溃。哪位大侠遇见过类似问题啊,帮帮我,高分赠送!

解决方案 »

  1.   

    对于release版本,不需要重载这个消息
    #ifdef _DEBUG
    int CMyView::OnMouseActivate(...)
    {
    ...
    }
    #endif
      

  2.   

    flyelf:
        已经解决了,谢谢;
        release是需要重栽的,不重栽要出错,我的错误是消息映射没做好,本来应该是
    ON_WM_MOUSEACTIVE()
        我写成了
    ON_MESSAGE(WM_MOUSEACTIVE, OnMouseActive)
        这样当处理完我自己的消息处理函数后,程序还是会去调用默认的消息函数,呵呵,我太粗心大意了。
        还是对你表示感谢,100就送给你了。