MFC树形控件响应
窗口分割后,左侧为CTreeView,右侧为CEditView,现在想单击树形控件的子节点,在右侧显示响应的图片,请各位高手帮忙解决一下,给点思路,深表感谢...
窗口分割后,左侧为CTreeView,右侧为CEditView,现在想单击树形控件的子节点,在右侧显示响应的图片,请各位高手帮忙解决一下,给点思路,深表感谢
展开
展开全部
不知道你的自定义控件是从哪个类派生的,也不知道你是否重载了虚函数WindowProc()一般来说控件自身是没有能力自己处理鼠标消息的,在重载虚函数WindowProc()函数时可以看到其直接调用的是该自定义控件的基类的WindowProc()函数,从而没有搜索当前类的消息映射表,所以我们需要改变消息路由,比如我从Static类派生了一个树形控件,这个控件我需要响应鼠标单击等事件事件这时我需要重载WindowsProc()函数 并添加
if( message == WM_NCHITTEST|| message == WM_NCLBUTTONDBLCLK
||message==WM_NCLBUTTONDOWN||message==WM_NCRBUTTONUP)
return ::DefWindowProc( m_hWnd, message, wParam, lParam );
return CStatic::WindowProc(message, wParam, lParam);
}
也就是截获WN_NCHITTEST(确定光标所在窗口)消息,鼠标单击消息等;使其搜索该类的消息映射表,从而实现鼠标消息的响应。
新手上路,如有不正确之处请多多包涵。
if( message == WM_NCHITTEST|| message == WM_NCLBUTTONDBLCLK
||message==WM_NCLBUTTONDOWN||message==WM_NCRBUTTONUP)
return ::DefWindowProc( m_hWnd, message, wParam, lParam );
return CStatic::WindowProc(message, wParam, lParam);
}
也就是截获WN_NCHITTEST(确定光标所在窗口)消息,鼠标单击消息等;使其搜索该类的消息映射表,从而实现鼠标消息的响应。
新手上路,如有不正确之处请多多包涵。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询