在MFC中如何通过“事件处理程序向导”为对话框模板添加响应WM_VSCROLL消息的处理函数OnVScroll()

我在MFC中想用“事件处理程序向导”为对话框模板添加响应WM_VSCROLL消息的处理函数OnVScroll()。在滚动条控件上单击右键——选择“事件处理程序向导”,显示... 我在MFC中想用“事件处理程序向导”为对话框模板添加响应WM_VSCROLL消息的处理函数OnVScroll()。在滚动条控件上单击右键——选择“事件处理程序向导”,显示如下:

消息类型中根本就没有WM_VSCROLL,所以无法通过这个向导添加OnVScroll()函数,该怎么办呢?
展开
 我来答
hf7022129
2012-08-26 · TA获得超过947个赞
知道小有建树答主
回答量:206
采纳率:100%
帮助的人:204万
展开全部
没有WM_VSCROLL这个消息类型 就说明这个你选择的这个类不能处理这个消息
需要在选择别的类来处理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.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式