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

VB中如何使键盘的按键与程序中的按键相关联?

楼主nmtao(西拉木伦)2004-12-03 21:11:55 在 VB / 基础类 提问

有感于微软的系统计算器,本人最近也写了一个计算器,现在有个问题,就是如何能让键盘的数字键与计算器中的数字键相关联呢。研究了很久也没有解决,请大家帮帮忙啊 问题点数:20、回复次数:7Top

1 楼happy_sea(开心海(数据读取中,请稍候......))回复于 2004-12-03 22:02:07 得分 10

声明:  
  Declare   Function   SendMessage   Lib   "user32"   Alias   "SendMessageA"   (ByVal   hwnd   As   Long,   ByVal   wMsg   As   Long,   ByVal   wParam   As   Long,   lParam   As   Any)   As   Long  
  Public   Const   WM_LBUTTONDOWN   =   &H201  
  Public   Const   WM_LBUTTONUP   =   &H202  
   
  代码:  
          SendMessage   Command1.hwnd,   WM_LBUTTONDOWN,   0,   0  
          SendMessage   Command1.hwnd,   WM_LBUTTONUP,   0,   0  
   
  为了让效果明显一点,可以在两句之间加点延时。Top

2 楼nmtao(西拉木伦)回复于 2004-12-04 21:16:41 得分 0

能够具体讲解一下吗Top

3 楼happy_sea(开心海(数据读取中,请稍候......))回复于 2004-12-04 21:56:05 得分 2

比如在Text1中输入数字与表达式,用cmdNumber(0~9)来输入0~9这几个数字,cmdAdd来输入加号,那么你可以在Text1的keypress事件中:  
   
  Private   Sub   Text1_KeyPress(KeyAscii   As   Integer)  
          Select   Case   KeyAscii   '根据KeyAscii进行判断  
                  Case   48   To   57   '数字0~9的Ascii值  
                          SendMessage   cmdNumber(KeyAscii   -   48).hwnd,   WM_LBUTTONDOWN,   0,   0  
                          '此处可以加点延时措施  
                          SendMessage   cmdNumber(KeyAscii   -   48).hwnd,   WM_LBUTTONUP,   0,   0  
                  Case   43   '加号的Ascii值  
          End   Select  
          Text1.SetFocus   '使Text1重新得到焦点以便继续输入  
  End   Sub  
  Top

4 楼wwqna(york)回复于 2004-12-04 22:30:26 得分 3

可以在楼上的基础上再改一下,根本就不要用sendmessage,执行相应程序就序就行,剩下的你就是改它状态就可以了。这样你还可以+-*/也关联起来,  
  另外用一timer使textbox一直获取消息。Top

5 楼nmtao(西拉木伦)回复于 2004-12-05 09:07:38 得分 0

SendMessage   cmdNumber(KeyAscii   -   48).hwnd,   WM_LBUTTONDOWN,   0,   0  
  这句话具有什么功能啊。Top

6 楼wwqna(york)回复于 2004-12-05 10:39:06 得分 2

这就相当于按下某一个数字键Top

7 楼happy_sea(开心海(数据读取中,请稍候......))回复于 2004-12-05 11:10:15 得分 3

SendMessage   cmdNumber(KeyAscii   -   48).hwnd,   WM_LBUTTONDOWN,   0,   0  
  这句向cmdNumber(...)这个按钮发送一个消息,作用跟你在按钮上按下鼠标左键是一样的。Top

相关问题

  • 键盘按键
  • 请问1:VB中使用键盘按键或按钮跳出Timer循环?
  • 关于VB中的处理键盘F10按键的困惑,高手来帮忙!!!!
  • 键盘按键测试?
  • 键盘按键的消息
  • 请问谁会用VC写一个系统级的鼠标和键盘按键Hook的dll给VB调用?
  • 如何模拟键盘按键。
  • 怎样模拟键盘按键
  • 关于键盘按键的,急!!
  • 对键盘按键怎么设置?

关键词

  • 计算器
  • 数字
  • cmdnumber
  • keyascii
  • 关联
  • sendmessage
  • lbuttondown
  • lbuttonup
  • 输入
  • hwnd

得分解答快速导航

  • 帖主:nmtao
  • happy_sea
  • happy_sea
  • wwqna
  • wwqna
  • happy_sea

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

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