小编Hus*_*kfa的帖子

C++ MFC - CEdit / EDITTEXT 控件 - 只允许某些字符

感谢您的回答和评论。我选择了我选择的答案,因为它允许我继续使用,CEdit只需对代码进行一些小的更改。然而,所考虑的解决方案CMFCMaskedEdit在测试时似乎也有效。如果您选择使用该解决方案,请确保在初始化时为对象应用正确的功能,例如SetValidChars等!:) 再次谢谢大家


我正在使用 Visual Studio Professional 2017 C++ 和 MFC


CEdit我的 MFC 项目中有一个对象,该对象EDITTEXT在我的.rc文件中也有一个控件。

CEdit对象将由输入关键字的用户进行编辑,我将使用该关键字执行某些操作,即查找包含该关键字的文件

当然,由于我的任务,我不能允许以下chars: \ / : * ? " < > |,因为这些chars 不允许出现在文件或文件夹名称中。

我该怎么做才能阻止用户将这些字符输入到CEditBox. 实际上,char我只需要:A-Za-z0-9_

另一种规格:不,regex请!理想情况下,答案将使用我可能忽略的Control(我看这里)或function(我看这里)。

如果没有解决方案,我会回到这个:

char我将检查用户输入的文本中是否存在这些内容。如果没有,那就太棒了,没什么可担心的!如果是,那么我将返回一个错误:)

先感谢您 !:D

c++ user-interface controls mfc cedit

1
推荐指数
1
解决办法
1081
查看次数

将许多 int 变量与值进行比较的优雅方法 - C++

在当前的两个答案中,我选择了使用基于范围的 for 循环的答案,因为它更好地满足了我的第一个要求,即避免冗长。可变参数模板的答案很有趣(我会尝试一下!),但比我想要的要长(因为我希望所有事情都在我提到的变量相同的函数内完成)。

如果其他人提出另一种方法,我仍然会关注(即使在遥远的将来!)并且总是很乐意选择可能更好的解决方案;)


我正在使用 Visual Studio 2017 Professional、C++、MFC


我有一个奇怪的问题,可能没有解决方案

我有一个遇到多个int变量的函数,假设我总共有六个变量:int1, int2, ..., int6

我想将这些值中的每一个与 进行比较-1。如果其中任何一个== -1,则该void函数return提前退出。

我知道您可能想到的第一个想法是一个冗长的if声明,可能有几个分支,例如:

if ( (int1 == -1) || (int2 == -1) || ... || (int6 == -1) ) { return;}

或者

if (int1 == -1) { return;}
else if (int2 == -1) { return;}
...
else if (int6 == -1) { return;}
Run Code Online (Sandbox Code Playgroud)

另一个想法是将所有这些ints 推入 a …

c++ integer if-statement compare

0
推荐指数
1
解决办法
100
查看次数

标签 统计

c++ ×2

cedit ×1

compare ×1

controls ×1

if-statement ×1

integer ×1

mfc ×1

user-interface ×1