CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

请教一个按键的问题

楼主z3254a(疯狂++)2005-04-03 00:54:00 在 C/C++ / C++ 语言 提问

用VK_UP可以向上走(北方),按VK_LEFT可以向左走(西方),我想同时按VK_UP&&VK_LEFT向上方和左方也就是西北方走的话,应该怎么判断? 问题点数:20、回复次数:5Top

1 楼longlijun(风之力)回复于 2005-04-03 09:08:21 得分 0

switch   (nChar)  
  {  
  case   VK_LEFT:  
  if((1   <<   15)   &   GetAsyncKeyState(VK_UP))  
  {  
  CClientDC   dc(this);  
  dc.TextOut(0,   0,   "press");  
  }  
  break;  
  }Top

2 楼z3254a(疯狂++)回复于 2005-04-03 09:41:26 得分 0

请问(1   <<   15)    
  CClientDC   dc(this);  
  dc.TextOut(0,   0,   "press");  
  是什么意思呢?  
  我可不可以用  
  case   VK_LEFT&&VK_UP:  
  ..........  
  我能不能用这种方法呢?比如说cos或sin?  
  Top

3 楼longlijun(风之力)回复于 2005-04-03 09:57:01 得分 0

不能用   case   VK_LEFT&&VK_UP:  
   
  CClientDC   dc(this);  
  dc.TextOut(0,   0,   "press");---------------这两句我只是让你用来测试的,当你按下left+   up   时  
                                                                                      窗口上显示“PRESS"  
   
  如果你不需要它,   可以改成你的代码,   你想left   +   up时做什么,   就在中间填什么代码?  
  上述代码有限制,   应先按UP,   再按LEFT,      
  如果在case   VK_UP中,也加入类似代码,就没顺序限制了Top

4 楼z3254a(疯狂++)回复于 2005-04-03 10:40:41 得分 0

请问(1   <<   15)是什么意思呢?l是数字1还是字母l呢?  
  如果是数字1的话我想是不是指,按LEFT的时候如果同时按UP,那么物体在原来15的基础上向左移1?(向负方向)  
  Top

5 楼longlijun(风之力)回复于 2005-04-03 10:54:31 得分 20

((1   <<   15)   &   GetAsyncKeyState(VK_UP)  
  呵呵,   不那样理解的,    
  上面整个表达式,   判断是否按下的UP键  
   
  case   VK_LEFT:   检测否按下LEFT键  
  if((1   <<   15)   &   GetAsyncKeyState(VK_UP))判断是否按下的UP键  
  然后,放上你的走西北方的程序代码,        
   
  同时按UP、LEFT向上方和左方也就是西北方走  
   
  1   <<   15   是个位移运算,   将1位15位后与函数的结果做位与运算  
  看不懂,可暂不看,   照搬!   :)  
  Top

相关问题

  • 按键问题
  • 按键问题!
  • 模拟按键
  • 屏蔽按键……
  • 关于按键
  • 按键捕捉
  • 键盘按键
  • 取按键问题
  • 键盘按键测试?
  • 屏蔽鼠标按键

关键词

  • vk
  • left

得分解答快速导航

  • 帖主:z3254a
  • longlijun

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

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