MFC 文本框怎么做到只输入 数字和符号啊
帮帮忙豪,这个问题对于我来说太困难了
1条回答 默认 最新
关注 让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
问题解答: 要实现只允许输入数字和符号的话,可以通过以下步骤来实现:- 在资源视图中选中文本框控件,打开属性窗口。
- 在控件属性中找到“限制”选项,设置“只读”为“否”,“多行”为“否”。
- 在“限制输入”的下拉列表中选择“使用正则表达式限制输入”。
- 在“限制输入”文本框中输入正则表达式“[0-9+*/-]”,表示只允许输入数字、加号、减号、乘号和除号。
- 保存属性设置后,在代码中添加以下代码:
// 在消息映射中加入 WM_CHAR 消息处理函数 BEGIN_MESSAGE_MAP(CMyDialog, CDialog) ON_WM_CHAR() // 加入 WM_CHAR 消息处理函数 END_MESSAGE_MAP() // WM_CHAR 消息处理函数 void CMyDialog::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { if (!isalnum(nChar) && nChar != '+' && nChar != '-' && nChar != '*' && nChar != '/') { // 如果输入字符不是数字或符号,则忽略该输入,不做任何处理 return; } CDialog::OnChar(nChar, nRepCnt, nFlags); }
这段代码的作用是对 WM_CHAR 消息进行处理,如果输入的字符不是数字或符号,就忽略该输入,不做任何处理。这样就可以实现只允许输入数字和符号的功能。 示例代码: 在资源视图中选中文本框控件,打开属性窗口,进行如下设置: 在代码中添加如下代码:
// 在消息映射中加入 WM_CHAR 消息处理函数 BEGIN_MESSAGE_MAP(CMFCApplication1Dlg, CDialogEx) ON_WM_CHAR() END_MESSAGE_MAP() // WM_CHAR 消息处理函数 void CMFCApplication1Dlg::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { if (!isalnum(nChar) && nChar != '+' && nChar != '-' && nChar != '*' && nChar != '/') { // 如果输入字符不是数字或符号,则忽略该输入,不做任何处理 return; } CDialogEx::OnChar(nChar, nRepCnt, nFlags); }
然后运行程序,在文本框中尝试输入字母,发现文本框不会显示字母,只能输入数字和符号:
解决 无用评论 打赏 举报
悬赏问题
- ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
- ¥20 关于#c++#的问题:(2)运算二叉树·表达式一般由一个运算符和两个操作数组成:(相关搜索:二叉树遍历)
- ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
- ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
- ¥45 求17位带符号原码乘法器verilog代码
- ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
- ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
- ¥15 怎么看我在bios每次修改的日志
- ¥15 python+mysql图书管理系统
- ¥15 Questasim Error: (vcom-13)