描述:
class ATL_NO_VTABLE CDrawGraphy :
public CComObjectRootEx<CComSingleThreadModel>,
public IPersistPropertyBagImpl<CDrawGraphy>
..............//这里省略那些很唐僧的父接口继承列表
{
BEGIN_MSG_MAP(CDrawGraphy)
CHAIN_MSG_MAP(CComControl<CDrawGraphy>)
DEFAULT_REFLECTION_HANDLER()
MESSAGE_HANDLER(WM_VSCROLL, OnVScroll)
MESSAGE_HANDLER(WM_HSCROLL, OnHScroll)
MESSAGE_HANDLER(WM_MOUSEWHEEL, OnMouseWheel)
END_MSG_MAP()
................//这里又省略那些很唐僧的MAP等等
}
//下面的是实现文件里面的代码,有必要告诉各位兄台的是,这些代码都是通过
//ATL框架的“Add Windows Message Handlers”菜单添加的。
//而且在这些响应函数之前,我已经通过函数SetScrollInfo()把水平滚动条,垂直滚动条通通都揪出来了。
LRESULT OnHScroll(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
AfxMessageBox("我是唐僧");
}
LRESULT OnMouseWheel(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
AfxMessageBox("我不是唐僧");
}
然后,Link ,Rebulid All ,Run ,结果很郁闷的是 ATL 框架居然只调用我得OnHScroll 和 OnVScroll函数,但是对于OnMouseWheel无动于衷,只是在我点击滚动条两头那两个可爱的小箭头时不断报告"我是唐僧!","我是唐僧!",在小弟滚动鼠标滚轮的时候,无论如何也不会出现"我不是唐僧"的对话框,55555,所以请教各位高人,支个高招!谢谢!!