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

需要判断L和K同时按下,请问大哥们怎样判断?

楼主kofwolfer(kofwolfer)2006-03-17 21:36:00 在 C++ Builder / 基础类 提问

需要判断L和K同时按下,请问大哥们怎样判断? 问题点数:20、回复次数:12Top

1 楼kofwolfer(kofwolfer)回复于 2006-03-17 23:23:10 得分 0

救命啊Top

2 楼ky19830618(理想)回复于 2006-03-18 10:08:43 得分 0

一段检测键盘按键的代码  
      if(Key==13||Key==8)  
      {  
          return;  
      }  
      else   if(!Key==48&&!Key==57)  
      {  
            ........  
      }    
  13 和8 代表空格和回车 48.57换成你想输入的键值     你自己换成相应的键值就行  
  最后把代码添加到KeyPress事件里Top

3 楼kofwolfer(kofwolfer)回复于 2006-03-19 12:49:11 得分 0

大哥怎么不行啊??Top

4 楼yanhaizhong(君龙)回复于 2006-03-19 14:11:30 得分 0

代码行的,放在KEYPRESS或者BCB的MESSAGE控件里啊Top

5 楼kofwolfer(kofwolfer)回复于 2006-03-19 20:25:30 得分 0

大哥们,,不可以啊,,,  
  救命哈,,,,  
  我就像下面的那样写的,但是还是要不得的  
  void   __fastcall   TForm1::FormKeyPress(TObject   *Sender,   char   &Key)  
  {  
    if(Key==13||Key==8)  
      {  
          return;  
      }  
      else   if(!Key=='l'&&!Key=='k')  
      {  
            ShowMessage("yes");  
      }  
   
  }Top

6 楼GWI()回复于 2006-03-20 08:32:36 得分 0

 
        KeyDown函数中  
   
      if((Key   ==   0x41&&GetKeyState(VK_CONTROL)<0))//   //响应Ctrl+A键Top

7 楼leeky(雅痞·千年虫)回复于 2006-03-20 09:18:00 得分 0

我不知您这樣倒底行不行,但我根據你们的描述,我给如下算法看行不行:  
  你可以設置两个键狀態標誌:Flag1、Flag2.  
  比如你一按下某个键就设Flag为true,並且判斷另一个键的標誌;放幵就設置为false,  
  當然初始值都为false。  
  这样做不难吧。Top

8 楼leeky(雅痞·千年虫)回复于 2006-03-20 09:20:05 得分 0

我才发現分好少!  
  嘿嘿。Top

9 楼leeky(雅痞·千年虫)回复于 2006-03-20 09:43:09 得分 20

送佛到西天(嘿嘿,如果不是自己想驗證一下,才懒得在这里罗嗦半天哦):  
  新建一个普通工程,  
  在窗体上放一个TShape控件,  
  为窗体初始化設置處理程序,为窗體的OnKeyDown設置事件,为窗體的OnKeyUp設置事件:  
  全局變量:  
  var    
      FlagK,FlagL   :     Boolean;      
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  begin  
      FlagK   :=   false;  
      FlagL   :=   false;  
      Shape1.Brush.Color   :=   clRed;  
  end;  
   
  procedure   TForm1.FormKeyDown(Sender:   TObject;   var   Key:   Word;  
      Shift:   TShiftState);  
  begin  
        if   (Key=75)  
        then   FlagK:=true;  
   
        if   (Key=76)  
          then   FlagL   :=true;  
   
            if     (FlagK   and   FlagL)  
      then   Shape1.Brush.Color   :=   clTeal  
      else   Shape1.Brush.Color   :=   clRed;  
  end;  
   
  procedure   TForm1.FormKeyUp(Sender:   TObject;   var   Key:   Word;  
      Shift:   TShiftState);  
  begin  
        if   (Key=75)  
        then   FlagK:=false;  
   
        if   (Key=76)  
          then   FlagL   :=false;  
   
      if     (FlagK   and   FlagL)  
      then   Shape1.Brush.Color   :=   clTeal  
      else   Shape1.Brush.Color   :=   clRed;  
  end;  
  Top

10 楼tianshu888(CC)回复于 2006-03-20 09:44:53 得分 0

void   __fastcall   TForm1::FormKeyPress(TObject   *Sender,   char   &Key)  
  {  
    if(Key=='l')  
      {//在这启动另一个进程   判断两位一个键   k   是否已经按下  
      }  
    if(Key=='k')  
      {//在这启动另一个进程   判断两位一个键   l   是否已经按下  
      }  
  }Top

11 楼Ring_Pt(已是黄昏独自愁)回复于 2006-03-20 09:53:45 得分 0

除了用楼上兄弟们的代码外  
  记得把keyPreview的属性设置成true.Top

12 楼kofwolfer(kofwolfer)回复于 2006-03-20 18:19:38 得分 0

谢谢各位兄弟朋友  
  尤其感谢  
  leeky(雅痞·千年虫)  
  是他的方法测试成功  
  谢谢Top

相关问题

  • 各位大哥, 如何判断用户点击了广告条?
  • 各位大哥,如何判断国内国外ip的问题
  • 菜鸟问题 (关于一个判断) 各位大哥近来帮忙!
  • 请问大哥们,如何可以判断PictureBox中是否已装有图片。。。
  • 各位大哥,帮我判断一下该空间,只否支持ASP.NET?
  • 那位大哥能告诉我如何判断一个点在一个多边形内??(详文)
  • 那位大哥知道怎样在VB里面判断SQL Server里面的值为NULL?
  • 各位大哥,关于如何判断邮件地址有效性的程序!谢谢哦!
  • 如何判断当前stream是否被关闭啊..........紧用啊,那位大哥说一下,谢谢
  • 大哥~

关键词

  • 代码
  • 判断
  • 大哥们
  • key

得分解答快速导航

  • 帖主:kofwolfer
  • leeky

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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