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); }然后运行程序,在文本框中尝试输入字母,发现文本框不会显示字母,只能输入数字和符号:
解决 无用评论 打赏 举报