怎样利用WM_MOUSEWHEEL获得鼠标滚轮消息(有分追加)

来源:百度知道 编辑:UC知道 时间:2024/05/16 19:53:53
我知道鼠标滚动一圈是在-120——+120之间的。怎样使用case WM_MOUSEWHEEL: 这个消息获得滚轮的滚动量或是知道鼠标滚动了几圈?请用代码演示一下?主要是想通过响应case WM_MOUSEWHEEL这个消息实现一个小功能: 滚轮向上放大图片,滚轮向下缩小图片,大到一定尺度后,再向上滚保持当前的尺寸不变. 小到一定尺度后,再向下滚保持当前的尺寸不变.
我只要用case WM_MOUSEWHEEL做的示例程序

BOOL CRemote_control_terminalDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
// TODO: Add your message handler code here and/or call default
CRect rect;
GetWindowRect(&rect);
if(m_out_size > 0)
{
if(pt.x>rect.left+69 && pt.x<rect.left+459 && pt.y>rect.top+220 && pt.y<rect.top+400) //鼠标的位置
{
switch(zDelta)
{
case 120:
if(m_scrollpos>0) //滚到最上了?
{
m_scrollpos--;
m_ctrl_scroll.SetScrollPos(m_scrollpos);
}
break;
case -120:
if(m_scrollpos<m_out_size) //滚到最下了?
{
m_scrollpos++;
m_ctrl_scroll.SetScrollPos(m_scrollpos);
}
break;
}
}
}
return CDialog::OnMouseWheel(nFlags, zDelta, pt);
}