CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

请教:vc6下“鼠标滑轮事件”的问题--GET_WHEEL_DELTA_WPARAM()函数无法识别

楼主yaoyansi()2006-03-08 15:19:29 在 VC/MFC / 界面 提问

我要获取鼠标滑轮滑动的距离,于是按照msdn上说:zDelta   =   GET_WHEEL_DELTA_WPARAM(wParam);  
  但是,编译不通过。提示:“'GET_WHEEL_DELTA_WPARAM'   :   undeclared   identifier”  
  该怎么办?请高手指点!谢谢!  
   
  系统是win2000,环境是vc++6.0  
  程序所包含的头文件如下:  
  #include   <stdlib.h>  
  #include   <vector>  
  #define       _WIN32_WINDOWS       0x0410//如果没有这行,程序就识别不了“WM_MOUSEWHEEL”这个鼠标事件的常量!  
  #include   <windows.h>  
  #include   <string.h>  
  #include   <stdio.h>  
  #include   <gl\gl.h>  
  #include   <gl\glu.h>  
  #include   <gl\glaux.h>  
  #include   <GL\glut.h>  
  #include   <math.h>  
   
  问题点数:20、回复次数:8Top

1 楼wawaku(一堆裤衩!)回复于 2006-03-08 15:31:07 得分 0

if(zDelta   ==   120)  
  {  
        //向上滚  
  }  
   
  if(zDelta   ==   120)  
  {  
        //向下滚  
  }  
   
  上下有点记不清了,你试试吧Top

2 楼wawaku(一堆裤衩!)回复于 2006-03-08 15:31:25 得分 0

下是     -120Top

3 楼yaoyansi()回复于 2006-03-08 15:50:39 得分 0

if(zDelta   ==   120)  
  {  
        //向上滚  
  }  
   
  if(zDelta   ==   120)  
  {  
        //向下滚  
  }  
   
  --------------------------------------------  
  可是,你是如何得到zDelta的值的呢?  
   
   
   
  zDelta   =   GET_WHEEL_DELTA_WPARAM(wParam);//我这样写,编译器不认识这个函数Top

4 楼wawaku(一堆裤衩!)回复于 2006-03-08 16:19:32 得分 0

不必得倒呀,就是在WM_MOUSEWHEEL   的消息函数里写就个就OK。  
  然后你当然得加上你自己坐标转换的东西啊,这个是我一个程序里的,用鼠标中轮来控制了滚动条的坐标,  
  BOOL   CXXXXView::OnMouseWheel(UINT   nFlags,   short   zDelta,   CPoint   pt)    
  {  
   
  if(zDelta   ==   120)  
  {  
  if(m_vscroll.GetScrollPos()>=25)  
  {  
  m_vscroll.SetScrollPos(m_vscroll.GetScrollPos()-25,true);  
  vcurpos-=25;  
  }  
  Invalidate();  
  }  
  if(zDelta   ==   -120)  
  {  
  if(m_vscroll.GetScrollPos()<=2999)  
  {  
  m_vscroll.SetScrollPos(m_vscroll.GetScrollPos()+25,true);  
  vcurpos+=25;  
  }  
  Invalidate();  
  }  
   
  Top

5 楼yaoyansi()回复于 2006-03-08 16:20:00 得分 0

目前,我是这样解决的:  
  在windows   sdk下面的winuser.h文件里发现GET_WHEEL_DELTA_WPARAM的宏定义,如下:  
  #define   GET_WHEEL_DELTA_WPARAM(wParam)     ((short)HIWORD(wParam))  
  那么,我在程序中把zDelta   =   GET_WHEEL_DELTA_WPARAM(wParam);语句还成了  
  zDelta   =   GET_WHEEL_DELTA_WPARAM(wParam);  
  编译运行通过!  
   
  不过,感觉总是怪怪的,仍然期待高人的指点。Top

6 楼yaoyansi()回复于 2006-03-08 16:23:31 得分 0

哦   我明白楼上诸位的意思了  
  可是,我处理滑轮不是为了改变滚动条的位置,是为了其他事情Top

7 楼wawaku(一堆裤衩!)回复于 2006-03-08 16:31:39 得分 0

大哥,你楼上就我一人    
   
  想做什么呢   弄不懂你的意思了Top

8 楼Mackz(在相互)回复于 2006-03-08 21:54:28 得分 20

#if(_WIN32_WINNT   >=   0x0400)  
  /*   Value   for   rolling   one   detent   */  
  #define   WHEEL_DELTA                                           120  
  #define   GET_WHEEL_DELTA_WPARAM(wParam)     ((short)HIWORD(wParam))  
  Top

相关问题

  • vc++库函数.
  • vc++函数问题!
  • 关于VC中的函数
  • vc+OnDraw()函数问题?
  • VC全局函数问题??
  • vc的两个函数
  • VC++的函数问题!
  • 延时函数求救 VC或API函数
  • vc里面模板函数可以作为全局函数吗?
  • VC 6.0中有没有计算bessel函数的系统函数

关键词

  • 函数
  • 鼠标
  • zdelta
  • wheel
  • delta
  • wparam
  • getscrollpos
  • vscroll
  • 程序
  • include

得分解答快速导航

  • 帖主:yaoyansi
  • Mackz

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo