MFC 使用类向导为控件关联变量

原创 2015年07月09日 10:07:16

创建一个对话框工程
设计界面如图
这里写图片描述
设置控件名称对应的控件ID

操作数1:IDC_FIRSTOPT
组合框 :IDC_SYMBO
操作数2:IDC_SECOPT
结果 :IDC_RET
计算按钮:IDC_CALC

选择运算符组合框控件
在属性框中选择Data选项卡 添加运算符 用分号分隔
这里写图片描述

设置type为 drop list,owner draw 为No。
右键类向导添加成员变量
这里写图片描述

向工程中添加一个实现计算功能的类模版

enum Symbo{PLUS,SUB,MUL,DIV};                                       //定义枚举类型
template<class Type>                                                //定义模版类
class Ccalc
{
public:Type Calc(Type &refFirstOpt, Type &refSecOpt, Symbo Opt)     //定义模版类函数
{
           switch (Opt)
           {
           case PLUS:
               return refFirstOpt + refSecOpt;
               break;
           case SUB:
               return refFirstOpt - refSecOpt;
               break;
           case MUL:
               return refFirstOpt*refSecOpt;
               break;
           case DIV:
               return refFirstOpt / refSecOpt;
               break;
           default:
               break;
           }
}
};

在对话框资源中双击“计算”按钮编写其消息处理过程,输入以下代码

void CMFCStudyDlg::OnBnClickedCalc()
{
    CString szFirstOpt, szSecOpt, szSymbo, szResult;
    m_Symbo.GetWindowText(szSymbo);
    if (!szSymbo.IsEmpty())
    {
        m_FirstOpt.GetWindowText(szFirstOpt);
        m_SecOpt.GetWindowText(szSecOpt);


        double dbFirst = _wtoi(szFirstOpt.GetBuffer(0));
        szFirstOpt.ReleaseBuffer(0);
        double dbSec = _wtoi(szSecOpt.GetBuffer(0));
        szSecOpt.ReleaseBuffer(0);

        Symbo opt;
        if (szSymbo=="+")
        {
            opt = PLUS;
        }
        else if (szSymbo=="-")
        {
            opt = SUB;
        }
        else if (szSymbo="*")
        {
            opt = MUL;
        }
        else
        {
            opt = DIV;
        }
        Ccalc<double>CalcObj;                                   //定义类模版对象
        double dbRet = CalcObj.Calc(dbFirst, dbSec, opt);       //调用Calc方法进行计算
        szResult.Format(_T("%-8.2f"), dbRet);                   //将实数转换为字符串
        m_Result.SetWindowText(szResult);                       //在编辑框中显示结果
        szResult.ReleaseBuffer(0);                              //释放缓冲区
    }
    // TODO:  在此添加控件通知处理程序代码
}

其中

double dbFirst = _wtoi(szFirstOpt.GetBuffer(0));
szFirstOpt.ReleaseBuffer(0);
double dbSec = _wtoi(szSecOpt.GetBuffer(0));

是将字符串转换成实数,然后释放缓冲区。
在多字符集中写atof()中即可,但在 Unicode 字符集中则需改为_wtoi()

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

VS2013/MFC编程入门之七(对话框:创建对话框类和添加控件变量)

前两讲中为大家讲解了如何创建对话框资源。创建好对话框资源后要做的就是生成对话框类了。再声明下,生成对话框类主要包括新建对话框类、添加控件变量和控件的消息处理函数等。        因为给大家的例程A...
  • zhaoyinhui0802
  • zhaoyinhui0802
  • 2016年11月23日 22:14
  • 5187

VS2010使用MFC类向导时提示“灾难性故障”的解决

最近在弄VS2020 MFC工程,结果突然想打开类向导时出现提示“灾难性故障”,顿时吓了一跳,以为工程都毁了,无奈到处找方法,结果看到下文,瞬间解决掉,文章链接 http://blog.csdn.ne...
  • caige1131855656
  • caige1131855656
  • 2015年02月04日 11:09
  • 1285

为编辑框关联几个成员变量

例如为EditBox1关联成员变量m_num1,
  • sanqima
  • sanqima
  • 2014年06月24日 16:38
  • 1461

类向导使用(为消息添加响应函数、关联成员变量)

  • 2009年10月31日 15:54
  • 20.03MB
  • 下载

MFC类向导的“对象ID”列表里没有手动创建的控件的ID

----------------------------------------------------------------------------------------------------...
  • to_Baidu
  • to_Baidu
  • 2017年03月07日 23:43
  • 1035

MFC中属性表单,向导,Tab控件演示实例

刚刚学习MFC编程不久,指导师兄交代了几个小任务,现将自己的工作再梳理一面,以加深印象! 达到的目的是这样的,在第一个和第二个页面各输入一个值,再把这两个值求和的结果输入到第三个页面中来。共用三种方法...
  • dby3579
  • dby3579
  • 2015年03月09日 15:25
  • 762

树形控件TreeCtrl关联的MFC中的类:CTreeCtrl

1、插入结点:InsertItem 2、获取与设置结点的文本:GetItemText、SetItemText 3、删除某个结点:DeleteItem 4、删除所有结点:DeleteAllItem...
  • Andy20081251
  • Andy20081251
  • 2014年04月15日 12:25
  • 1727

ios开发——基本控件与变量(数据)的关联与使用

学习了一些IOS基本的常用控件之后,我们今天尝试来写一个点击按钮实现更换Label文字的App,属于基本入门篇。 1. 创建一个新的project,旋转“Single View Applicat...
  • xiaobaismiley
  • xiaobaismiley
  • 2014年06月23日 23:25
  • 3448

VS2010/MFC编程入门之七(对话框:创建对话框类和添加控件变量)

前两讲中鸡啄米为大家讲解了如何创建对话框资源。创建好对话框资源后要做的就是生成对话框类了。鸡啄米再声明下,生成对话框类主要包括新建对话框类、添加控件变量和控件的消息处理函数等。        因...
  • WLONG724
  • WLONG724
  • 2014年04月23日 15:38
  • 1109

VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)

转自:http://www.jizhuomi.com/software/153.html 前两讲中鸡啄米为大家讲解了如何创建对话框资源。创建好对话框资源后要做的就是生成对话框类了。鸡啄米再声明下...
  • minghuiw
  • minghuiw
  • 2013年04月06日 21:04
  • 1494
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC 使用类向导为控件关联变量
举报原因:
原因补充:

(最多只允许输入30个字)