我一开始想用WindowProc或者OnWndMsg函数让它的子窗口来处理这个消息,但是我发现这两个函数都是受保护的函数,无法访问。于是我用了AfxCallWndProc这个函数,但是我发现AfxCallWndProc的返回值不能判断它的子窗口是否处理了该消息,而且为什么AfxCallWndProc能访问调用WindowProc和OnWndMsg这两个受保护的成员呢?后来我又用SendMessage来让子窗口处理该消息,但是还是不能判断子窗口是否处理了该消息
调试欢乐多
不行,只有OnWndMsg函数的返回值才能判断,但是这个函数受保护,没法调用它,其它函数都不能判断
不行,只有OnWndMsg函数的返回值才能判断,但是这个函数受保护,没法调用它,其它函数都不能判断
重载OnWndMsg
我该怎么重写OnWndMsg函数呢?请您详细说一下吧
不行,只有OnWndMsg函数的返回值才能判断,但是这个函数受保护,没法调用它,其它函数都不能判断
重载OnWndMsg
我该怎么重写OnWndMsg函数呢?请您详细说一下吧
难道你是让我的CFormViewEx类重载这个函数吗?但是重载后,这个函数该怎么写呢?
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
for(遍历子窗口)
{
if(pChild->SendMessage(...)) return TRUE;
pChild=下一个;
}
};
BOOL CFormViewEx::PreTranslateMessage( MSG* pMsg )
{
if (pMsg->message == WM_MOUSEWHEEL)
{
CWnd* pWnd = GetFocus();
BOOL bResult = pWnd->SendMessage(pMsg->message,pMsg->wParam,pMsg->lParam);
if (bResult)
return TRUE;
else
{
WindowProc(pMsg->message,pMsg->wParam,pMsg->lParam/*,&lResult*/);
return TRUE;
}
}
return CFormView::PreTranslateMessage(pMsg);
}
我的解决方法,分给你吧