Edit控件想验证输入,比如只能输入0~9的数字,如何实现??
解决方案 »
- netstat -r 求解释?
- 怎么获得指定打印机的信息?
- [求助] 还有人用BCG2.01吗?求解一个bug,不想用它的高版本
- .IDL文件中是用什么类型代替char*的呀?
- 如何让打开文件夹时自动运行指定应用程序?
- 超级难题,win2000或xp下,如何获得“记事本”中游标在行中的列数?100分奉送,不够再加!
- 是否有错?!
- 如何利用EnumWindow获取所有的窗口句柄?
- 请问PDF文件可以转换为那些文件,可不可以转为HTML文件?十万火急,谢谢
- 使用 mfc CClientDC 绘制 4 角框
- 关于Xtreme Toolkit pro12.0在vc2005下运行的问题
- 关于OPENGL地形生成与高度获取的问题
在属性表里的style(风格)选中 number(数字)这个选项就可以实现了
好运!
if(pMsg->message==WM_KEYDOWN)
{
int a=pMsg->wParam;
int d=GetFocus()->GetDlgCtrlID();
CString str;
if((a>=48&&a<=57)||(a>=65&&a<=70)||(a==8)||(a==46)||(a>=96&&a<=105)||(a>=37&&a<=40))
return CDialog::PreTranslateMessage(pMsg);
else
return 1L;
}
我这边是用在对话框的..
void MyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if ((( '0' <= nChar ) && ( '9' >= nChar )) ||
(( 'A' <= nChar ) && ( 'F' >= nChar )))
{
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
else
{
return;
}
}之后在Class Wizard中选择Member Variables为相应的Edit ID添加变量,category中选择Control,variable type 选择CMyEdit.
之后在包含Edit控件的对话框头文件中加入
#include"MyEdit.h"
只能子类化 方法可以参考 http://blog.programfan.com/article.asp?id=20893
void CXXXEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
if(::isdigit(nChar) || (nChar>='A' && nChar<='F') || (nChar>='a' && nChar<='f'))
CEdit::OnChar(nChar, nRepCnt, nFlags);
}