![]() |
【转帖】如何使用vc++使edit只接受数字输入
如何使用vc++使edit只接受数字输入
如何使用vc++使edit只接受数字输入 本帖最后由 liuxingyang 于 9-4-7 01:30 pm 编辑 如何使用vc++来实现控制文本输入框只接受数字输入 是困扰我已久的问题,今天找到了一个很好的解决方法。 先说思路,这个代码所实现的思路就是利用截获键盘消息,截获键盘的字符串消息,使之从消息队列中移除,从而使之只接受字符输入。 学习资料来源:autocad 0 arx 开发技术 刘良华 朱东海编著。 主要代码: 头文件 testmsg.h #include "stdafx.h" #include "resource.h" #include "afxwin.h" #include<rxregsvc.h> #include "rxmfcapi.h" static bool misschardone=false;//全局变量 防止多次注册 bool filtermisschar(msg *pmsg);//钩子函数 void unloadmisschar();//移除该消息 void misschar();//注册消息 源文件 testmsg.cpp #include "testmsg.h" bool filtermisschar(msg *pmsg) { if(pmsg->message==wm_char&&((pmsg->wparam>=65&&pmsg->wparam<=90)||(pmsg->wparam>=97&&pmsg->wparam<=122))) return true; return false; } void misschar() { if (misschardone==true) { return; } if(acedregisterfilterwinmsg(filtermisschar)==false) { acutprintf("无法注册钩子函数"); } else { misschardone=true; } return; } void unloadmisschar() { if (misschardone==true) { acedremovefilterwinmsg(filtermisschar); } return; } 调用的时候 调用misschar()函数 就能实现该功能了 。 由于代码很简单,而且是书本上的知识,希望能与大家分享 可以在某一个edit的setfocus事件中调用misschar()函数 ,就能实现这个文本框的只能接受数字输入的效果了。 评分次数 威望 + 1 呵呵,,第一次接触这样的做法,帮你顶了 忽悠悠 你如果控制edit的输入 你采用什么方法呢 |
| 所有的时间均为北京时间。 现在的时间是 06:40 PM. |