如何限制在编辑框中输入的格式 比如我要在编辑框中输入实数,3%等等。不允许用户输入别的符号。最好不用消息提示 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在类向导中给IDC_EDIT重载消息EN_CHANGE在响应函数中自己给用户所输入的值进行规则判断 我看了MSDN的帮助,不能理解,#define PES_NUMBERS 0x0001#define PES_LETTERS 0x0002#define PES_OTHERCHARS 0x0004#define PES_ALL 0xFFFFvoid CParsedEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags){ WORD type; if (nChar < 0x20) type = PES_ALL; // always allow control chars else if (IsCharAlphaNumeric((TCHAR)nChar) && !IsCharAlpha((TCHAR)nChar)) type = PES_NUMBERS; else if (IsCharAlpha((TCHAR)nChar)) type = PES_LETTERS; else type = PES_OTHERCHARS; if (m_wParseStyle & type) { CEdit::OnChar(nChar, nRepCnt, nFlags); // permitted } else { // illegal character - inform parent OnBadInput(); }}他那个 0x20是什么意思,如果是ASCII码,那就是32,应该大于32才对呀,那个宏定义我也看不懂,0x0001,0x0002,0x0004,0xFFFF究竟代表什么我要做的是编辑框显示实数,小数5位吧,如0.00000,可以往里输任何值,然后编辑框显示百分比,可以往里输百分数,能不能说具体些,最好能有代码帮我理解。 重载CEditvoid CHexEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { CString m_strHex="0987654321abcdefABCDEF\b"; //我这里实现得是只可以输入16进制得数,你根据需要改一下 if(m_strHex.Find(nChar)==-1) //如果不是你需要得就返回 return; CEdit::OnChar(nChar, nRepCnt, nFlags);} 我没用你们所说的那么高深的技术,太麻烦了。我是在编辑框里定义的double变量,输字符串,他自己会弹出消息框。 MFC中 cpp文件中声明的变量 如何在其他cpp文件中调用 modeless对话框如何实现同步绘图? 如何获取空白光盘的容量? API 线程不能关闭 请教一个简单语法问题:for循环里有switch,怎么从case语句里跳出for循环,结构如下: 网上的西欧字符是用什么编码?为什么和UNICODE编码不一样? 急!!!急!!!在线等待 问 用内部环网测试C/S程序,当客户端再次接受数据失败,10053 DAO操作,如何选中ACCESS数据库中的表?谢谢! 大数组的问题 用win api列举出某目录下所有文件,然后显示在CListctrl上怎么前面有两个文件名是.和..的?那是什么???
#define PES_NUMBERS 0x0001
#define PES_LETTERS 0x0002
#define PES_OTHERCHARS 0x0004
#define PES_ALL 0xFFFF
void CParsedEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
WORD type; if (nChar < 0x20)
type = PES_ALL; // always allow control chars
else if (IsCharAlphaNumeric((TCHAR)nChar) && !IsCharAlpha((TCHAR)nChar))
type = PES_NUMBERS;
else if (IsCharAlpha((TCHAR)nChar))
type = PES_LETTERS;
else
type = PES_OTHERCHARS; if (m_wParseStyle & type)
{
CEdit::OnChar(nChar, nRepCnt, nFlags); // permitted
}
else
{
// illegal character - inform parent
OnBadInput();
}
}
他那个 0x20是什么意思,如果是ASCII码,那就是32,应该大于32才对呀,
那个宏定义我也看不懂,0x0001,0x0002,0x0004,0xFFFF究竟代表什么
我要做的是编辑框显示实数,小数5位吧,如0.00000,可以往里输任何值,
然后编辑框显示百分比,可以往里输百分数,
能不能说具体些,最好能有代码帮我理解。
void CHexEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
CString m_strHex="0987654321abcdefABCDEF\b"; //我这里实现得是只可以输入16进制得数,你根据需要改一下 if(m_strHex.Find(nChar)==-1) //如果不是你需要得就返回
return; CEdit::OnChar(nChar, nRepCnt, nFlags);
}
我是在编辑框里定义的double变量,输字符串,他自己会弹出消息框。