首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用CString验证器需要在MFC中添加两个数字

在MFC中添加两个数字

在MFC(Microsoft Foundation Class)中,可以使用CString验证器来验证输入的字符串是否为数字。添加两个数字的步骤如下:

  1. 首先,你需要在你的MFC应用程序中添加一个编辑框控件。可以使用Visual Studio的可视化设计器或手动在对话框资源中添加一个编辑框。
  2. 打开你的对话框类的头文件(例如,MyDialog.h),添加一个成员变量来引用该编辑框。可以使用如下代码示例:
代码语言:txt
复制
CMyDialog : public CDialogEx
{
// ...
protected:
    CEdit m_EditNum1; // 第一个数字编辑框
    CEdit m_EditNum2; // 第二个数字编辑框
    // ...
};
  1. 在对话框类的OnInitDialog()函数中,使用GetDlgItem()函数获取编辑框的指针,并设置验证器。示例代码如下:
代码语言:txt
复制
BOOL CMyDialog::OnInitDialog()
{
    // ...

    // 获取编辑框的指针
    m_EditNum1 = (CEdit*)GetDlgItem(IDC_EDIT_NUM1);
    m_EditNum2 = (CEdit*)GetDlgItem(IDC_EDIT_NUM2);

    // 设置验证器,仅允许输入数字
    m_EditNum1.SetWindowText(_T("")); // 清空编辑框内容
    m_EditNum1.SetLimitText(10); // 设置最大输入字符数
    m_EditNum1.SetValidator(CStringValidator::GetDigitsValidator()); // 验证器

    m_EditNum2.SetWindowText(_T("")); // 清空编辑框内容
    m_EditNum2.SetLimitText(10); // 设置最大输入字符数
    m_EditNum2.SetValidator(CStringValidator::GetDigitsValidator()); // 验证器

    // ...

    return TRUE;
}

在上面的代码中,我们使用SetValidator()函数将验证器应用于编辑框。CStringValidator::GetDigitsValidator()是一个内置的验证器,可以确保只有数字被输入到编辑框中。

  1. 如果你想要在用户输入不符合验证器要求的内容时进行提示,可以在对话框类中添加一个消息处理函数来响应EN_UPDATE消息。示例代码如下:
代码语言:txt
复制
BEGIN_MESSAGE_MAP(CMyDialog, CDialogEx)
    // ...
    ON_EN_UPDATE(IDC_EDIT_NUM1, &CMyDialog::OnEditNum1Update)
    ON_EN_UPDATE(IDC_EDIT_NUM2, &CMyDialog::OnEditNum2Update)
    // ...
END_MESSAGE_MAP()

void CMyDialog::OnEditNum1Update()
{
    CString strNum1;
    m_EditNum1.GetWindowText(strNum1);

    if (!CStringValidator::IsDigitsOnly(strNum1))
    {
        MessageBox(_T("请输入有效的数字!"), _T("提示"), MB_OK | MB_ICONWARNING);
        m_EditNum1.SetWindowText(_T(""));
    }
}

void CMyDialog::OnEditNum2Update()
{
    CString strNum2;
    m_EditNum2.GetWindowText(strNum2);

    if (!CStringValidator::IsDigitsOnly(strNum2))
    {
        MessageBox(_T("请输入有效的数字!"), _T("提示"), MB_OK | MB_ICONWARNING);
        m_EditNum2.SetWindowText(_T(""));
    }
}

在上面的代码中,OnEditNum1Update()OnEditNum2Update()函数分别用于第一个数字编辑框和第二个数字编辑框的EN_UPDATE消息处理。它们会检查编辑框中的文本是否为有效的数字,如果不是,则弹出提示对话框并清空编辑框的内容。

  1. 在对话框资源中,将两个编辑框的ID分别设置为IDC_EDIT_NUM1IDC_EDIT_NUM2
  2. 编译和运行应用程序,你现在应该可以在MFC应用程序中使用CString验证器来验证用户输入的数字了。

以上是关于在MFC中添加两个数字的简要说明。使用CString验证器可以确保输入的内容符合特定的要求,例如仅包含数字等。然而,如果需要更复杂的验证逻辑或其他功能,可能需要进一步定制或使用其他验证机制。腾讯云提供了一系列云计算相关的产品和服务,可根据具体需求选择相应的产品。具体的产品介绍和链接地址请参考腾讯云官方网站或咨询腾讯云客服。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Calculator

(百度百科) 暑假想学习一下Windows API的使用,于是想利用Windows窗口设计一个简单的计算,虽然之前在图书馆借了一本书但过于硬核,后来在bilibili找到一个MFC的教程才开始上手做这个...bilibili MFC教程 一、Calculator V1.0 当前完成的最初版本的计算,能够进行整数的四则运算,输入有基本的纠错功能(比如无法连续输入两个加号++),但输入错误的括号形式时计算会出错...3、计算的代码实现 (1)CString类 在MFC代码,数值类型与C++相同,但输入输出的字符类型为TCHAR,字符串类型为CString,可以利用宏定义_T("字符串常量")将C字符串转换为CString...运算符号需要在数字或者右括号后才能输入:(2+4)-2;除此之外,减号-还能当作负号使用,那么负号还能作为第一个字符、在左括号后输入:-2+(-1)。...,这里我使用双栈进行计算,规则如下: 运算时使用两个栈,一个数字栈,一个操作符栈。

1.1K30
  • VS下如何建立一个新的MFC程序 网络编程 课设 基于C++ MFC 连接数据库 小应用 小项目浅析展示

    就是 打开VS 新建项目-MFC -MFC工程-点基于对话框 -和在静态库中使用 然后下一页将关于对话框取消了 不然会有两个对话框出来 然后点击完成 具体如下 步骤1:双击打开vs2013,进入起始页,...勾选“基于对话框”,在“MFC使用,勾选“在静态库中使用MFC(U)”,再点击下一步。...这里选择去掉关于对话框,不然有两个对话框  步骤3:进入用户界面功能。选择主框架样式,可以自由选择是否添加最小化框、最大化框;“关于”框也可以去掉;对话框标题一般不需要更改,默认与项目名称一致。...;         CString e = mysql_error(&m_sqlCon);//需要将项目属性字符集修改为“使用多字节字符集”或“未设置”           MessageBox(e)...; CString e = mysql_error(&m_sqlCon);//需要将项目属性字符集修改为“使用多字节字符集”或“未设置” MessageBox(e); return;

    3K30

    网络编程 课设 基于C++ MFC 连接数据库 小应用 小项目浅析展示

    就是 打开VS 新建项目-MFC -MFC工程-点基于对话框 -和在静态库中使用 然后点击完成 注意啦 命名 都用英文 源码在这https://pan.baidu.com/s/1chRMPK   工具:...注意啦 这是我MYSQL的安装目录  你们看自己的)     最后在加一个 项目-属性-连接-常规  -附加依赖项 里 加 libmysql.lib   然后在把这个MYSQL的文件 拷贝到自己MFC...;         CString e = mysql_error(&m_sqlCon);//需要将项目属性字符集修改为“使用多字节字符集”或“未设置”           MessageBox(e)...;         mysql_query(&m_sqlCon, "SET NAMES 'GB2312'");//解决从数据库读取数据后汉字乱码显示的问题  也可以是UTF-8         CString...; CString e = mysql_error(&m_sqlCon);//需要将项目属性字符集修改为“使用多字节字符集”或“未设置” MessageBox(e); return;

    1.4K60

    VC6.0基础知识使用小结

    这段时间在使用MFC做媒体播放项目,查询了不少资料,用到的技术主要有ADO、多线程、DirectShow、MFC相关控件包括ActiveX控件(Windows Media Player、Active...先谈一下这段时间的收获吧,这将近一个月的时间内,通过媒体播放项目,我熟悉了使用ADO操作Access数据库、SQL语句的运用(虽然用的语句比较简单,无非增删改查)、Window Media Player...对应的17个类的使用MFC的列表框CListBox、树控件CTreeCtrl、CListCtrl等控件、多线程的使用等。...转至对话框资源,在需要添加菜单的对话框资源IDD_MYMEDIAPLAYER_DIALOG,选中该对话框资源,右键选择【Properties】属性,再在【General】选项卡的Menu中选择需要添加的菜单...下面这节内容主要是一般的框架,然后再讲多线程的指针使用使用到的类需要包含响应的头文件。

    1.2K20

    MFC控件编程之 按钮编辑框.静态文本的使用,以及访问控件的七种方法.

    PS: 我们需要都要设置这个控件的ID.否则无法使用API获取. PS: 我们如果在MFC使用API .需要加上全局访问符号.:: 也就是四饼....否则就是使用MFC自带的 封装的API 不过此时我们上面所说的API.就是使用MFC封装的.比较方便.. void CButtonAnEditAnStaticTextDlg::OnBnClickedButton1...() { // TODO: 在此添加控件通知处理程序代码 CString str; GetDlgItemText(EDT_SHOWVALUE, str); //获取编辑框的内容....Value类型 如果使用这个方法.那么我们的控件需要绑定一个变量.使用这个变量来获取跟设置. 编辑框 - > 类向导 -> 添加变量 给编辑框进行关联. ? 三个依次关联即可....这个就可以当控件使用了. 我们给编辑框关联的.那么查询MSDN可以看到控件的操作方法. ? 如果获取字符串可以使用两个函数.获取跟设置. 也可以设置编辑框的最大字符数.

    3.5K30

    头文件string的作用_cstring头文件的作用

    string是c++语言中string类模板的申明 CStringMFC定义的字符串类,MFC很多类及函数都是以CString为参数的,另外CString类重载了(LPCSTR)运算符,所以如果你在...MFC下面使用CString类,就可以直接用CString类做为参数来调用需要一个C语言风格字符串的win api函数,编译会自动调用(LPCSTR)成员函数完成从CString到一个C风格字符串的转换...如果你在MFC使用C++语言中标准的 string类,那么在调用需要C语言风格的字符串为参数的win api时,你必须显示调用sting.c_str()成员函数,来完成同样的转换,也就是说在使用MFC...差不多,可以直接与char*进行加法,但不可以相互使用+运算符,即string str = str + cstr是非法的,须转换成char*;   2 char*没有+运算,只能使用strcat把两个指针连在一起...次之,可以与基本的一些字符串变量进行+=而来,包括char*等;   2 char*没有+=运算符,只能使用strcat把两个指针连在一起;   d) operator[]   2 CString最好,

    4.8K10

    VC2008处理CStatic控件的单击STN_CLICKED消息

    MFC,静态文本CStatic控件主要是用来作为标签,即作为注释用的。一般情况下不做消息响应。...在VC2008下使用MFC创建了一个基于对话框的应用程序。...添加一个CStatic控件,修改其Caption属性为:Number1:      默认情况下MFC中所有新添加的静态控件的ID是一样的,都是IDC_STATIC,如果想要使用某个STATIC控件进行消息响应...原来需要在VS2008修改ID为IDC_NUMBER1的CStatic控件的Notify属性(即SS_NOTIFY风格),将其改成TRUE就OK了,默认的属性为FASLE,即静态文本控件在默认情况下是不发送通告消息的...总结如下,为了使得一个静态文本控件能够响应鼠标单击消息,那么需要进行两个特殊的步骤: 1、改变它的ID。

    1.3K20

    MFC 调用静态链接 MFC 的规则 DLL

    构建MFC的DLL项目 新建MFC DLL项目 ? 这边选择带静态链接MFC的规则DLL ? 默认生成了,头文件和源文件,右键def文件 ?...然后将MyDLL.h头文件拷贝到inc目录,将dll项目生成的MyDLL.dll和MyDLL.lib两个文件拷贝到lib下 然后进行配置,项目属性-->链接 -->常规,配置附加库目录,这边是配置外来库的文件目录...然后再配置库名称,项目属性->链接-->输入,配置附加依赖项,即把要添加的lib,名称加进去 ? 到此依赖的静态链接库都配置好了。...CMFCTestDLLDlg 消息处理程序 BOOL CMFCTestDLLDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单...对于使用文档/视图模型的 MFC 应用程序, // 这将由框架自动完成。

    2.5K20

    如何绕过IsDebuggerPresent的反调试

    ,使调试的反汇编引擎无法正确解析反汇编指令(干扰) 门槛较高的反调试则可以是从驱动层将调试权限清零,使得调试失效等等 (权限清零) 反调试的手段可以大致归纳为:检测、干扰、权限清零 三种 反调试常见手段...64位,MFC做的,c++写的,没壳 ASLR 什么是ASLR 维基百科:在计算机科学,地址空间配置随机加载(英语:Address space layout randomization,缩写ASLR...验证反反调试处理 ? 正式Crack 先随便输入一个数看看 ?...::OnBnClickedButton1() //按钮"确定"的响应事件 { // TODO: 在此添加控件通知处理程序代码 //获取到edit1的内容 然后给edit2赋值 CString...如果两个对象完全一致则返回0,如果小于lpsz,则返回-1,否则返回1.

    2.3K20

    网络聊天室

    MFC,Socket套接字,TCP/IP协议,动态数组,CString字符串拼接与拆分 2网络聊天室运行流程图 2.1服务运行流程图 2.2客户端运行流程图 3网络聊天室详细 3.1通信格式 每次客户端与服务之间的通信都是发送...3.2服务类 3.2.1重载OnAccept函数 服务器使用Create(PORT)开启成功后,使用Listen()进行监听,当有客户端进行连接请求后,发生OnAccept消息响应,此时重载OnAccept...这句话至关重要,把服务的套接字绑定到此 Accept(*_pNewClient); m_ClientArr.Add(_pNewClient);//接受一个连接把它加入到动态数组 CSocket...相当于服务端自从接受新的连接后就不再管理,后面的发送与接受都使用自己刚刚新建的CClientSocket套接字来完成。...3.2.2发送给指定用户 服务负责所有消息的转发,当有私密消息发来时,进行分类处理。有私密消息时,扫描动态数字,把私密者的名字与动态数组每个套接字的名字进行比较,相同则进行转发。

    35420

    VC控件使用小结

    这段时间通过使用MFC做车牌识别系统和媒体播放,重新温习了一下MFC,特别是控件的使用,同时也学习了ADO技术、Socket网络编程、文件传输、OpenCV、多线程、数字图像处理、Windows...废话不多说了,进入主题吧,今天把我学习到的MFC控件做一个小结吧,希望能给其他的人以帮助吧。    ...一、CListBox---列表框控件 1、清除CListBox的所有内容 两种方法: (1)ResetContent成员函数 CListBox m_listBox; m_listBox.ResetContent...我在使用MFC做媒体播放时,在涉及到ADO数据库查询后将查询结果放在CListCtrl控件上。查询一次后,当第二次查询时,必须清除上次结果的所有内容,包括列标题头和显示行的内容。...CTreeCtrl控件 CTreeCtrl m_mediaTreeCtrl;  m_mediaTreeCtrl.DeleteAllItems(); 四、CComboBox---组合框控件 1、获取组合框控制句柄 添加成员变量

    1.8K10

    VC++200320052008 调用Mediaplayer的指南

    在菜单上选择 项目-〉添加类-〉MFC->activex控件mfc类-〉添加。 4、选择 windows media player,添加IWMPControls类。...首先,创建一个对话框,然后在资源管理右击对话框,选择“插入Active控件”—〉选择windows media player—〉将控件拉到适合大小—〉右击player控件—〉选择添加变量(m_avPlayer...右击类视图/解决方案—〉添加类—〉选择“ActiveMFC类”—〉选择windows media playerà选择相应的接口(IWMPMedia IWMPSettings IWMPControls...打开:当选择一个文件打开是,可以直接使用m_avPlayer.put_URL(fileName); 为打开按钮添加消息响应函数,在函数添加如下代码: char szFileFilter[]=         ...,第一步: 需要在播放列表添加媒体;第二步:将列表设置为当前播放列表;第三步:将播放设置为自动播放。

    1.4K20
    领券