如何限制在编辑框中输入的格式 比如我要在编辑框中输入实数,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变量,输字符串,他自己会弹出消息框。 BM_SETIMAGE 如何使用 创建atl窗口问题 怪事! 请问如何判断资源文件数据的末尾? 100分求助 关于在MFC中调用API的奇怪问题 使用VC编辑代码,有时不能自动弹出类或结构的成员。求原因及完整解决方案! GetUserName怎么用啊? 转让工控机+运动控制卡 怎么改变Button的外形?? 请问如何能够得到其他机器的网卡MAC地址! 大数组的问题 用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变量,输字符串,他自己会弹出消息框。