在MFC中如何通过“事件处理程序向导”为对话框模板添加响应WM_VSCROLL消息的处理函数OnVScroll()
我在MFC中想用“事件处理程序向导”为对话框模板添加响应WM_VSCROLL消息的处理函数OnVScroll()。在滚动条控件上单击右键——选择“事件处理程序向导”,显示...
我在MFC中想用“事件处理程序向导”为对话框模板添加响应WM_VSCROLL消息的处理函数OnVScroll()。在滚动条控件上单击右键——选择“事件处理程序向导”,显示如下:
消息类型中根本就没有WM_VSCROLL,所以无法通过这个向导添加OnVScroll()函数,该怎么办呢? 展开
消息类型中根本就没有WM_VSCROLL,所以无法通过这个向导添加OnVScroll()函数,该怎么办呢? 展开
展开全部
没有WM_VSCROLL这个消息类型 就说明这个你选择的这个类不能处理这个消息
需要在选择别的类来处理MFC中每个消息 并不是所有类都能处理的 还要看消息的类型
就你目前生成的类来看 至少在CMainFrame类中应该可以找到这个消息
需要在选择别的类来处理MFC中每个消息 并不是所有类都能处理的 还要看消息的类型
就你目前生成的类来看 至少在CMainFrame类中应该可以找到这个消息
追问
可WM_VSCROLL应该是滚动条控件处理的消息啊
追答
不太了解你所选择类的类型
但是无论是标准滚动条,还是滚动条控件,滚动条的通知消息都是用WM_HSCROLL和WM_VSCROLL消息发送出去的.对这两个消息的确省处理函数是CWnd::OnHScroll和CWnd::OnVScroll
也就是说派生于CWnd的类都可以处理这个消息.
如你窗口中显示的CScrollControlView 和CMainFrame都可以处理这个消息.
你可以在 类视图 中选择你要处理这个消息的类 然后 点击右键 选择类向导选项 在对话框消息选项卡中查找WM_VSCROLL这个消息 如果没有那就是你这个类的确不能处理这个消息
这两个函数的声明为
afx_msg void OnHScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar );
afx_msg void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar );参数nSBCode是通知消息码.nPos是滚动框的位置,只有在nSBCode为SB_THUMBPOSITION或SB_THUMBTRACK时,该参数才有意义.如果通知消息是滚动条控件发来的,那么pScrollBar是指向该控件的指针,如果是标准滚动条发来的,则pScrollBar为NULL.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询