VC闪存吧

简介:
长时间不摸VC都忘光了,做个计算器熟悉一下,回忆一下。

1.新建MFC AppWizard[exe]  MyCalculator
2.选择基于对话框,直接完成向导。
3.打开资源视图,展开Dialog
双击IDD_MYCALCULATOR_DIALOG
删除默认的文本与按钮。
4.选中按钮,打开属性面版,Caption相当于Text
ID不变。
5.引入一个变量,将输入的数据和计算的结果在编辑框显示。
拖一个编辑框上去。ID为IDC_DISPLAY
右击添加变量,把"控件变量"勾上。
选择编辑框IDC_DISPLAY
类别选择Value;变量类型选择CString
变量名为m_display
6.添加一个变量,变量类型为double
变量名m_first;访问protected
这样在头文件中添加了变量。
可以直接在MyCalculatorDlg.h中直接手写。
8.打开MyCalculatorDlg.cpp
找到构造函数
CMyCalculatorDlg::CMyCalculatorDlg(CWnd* pParent /*=NULL*/)
 : CDialog(CMyCalculatorDlg::IDD, pParent)
 , m_display(_T(""))
 , m_first(0)
{
 m_first=0.0;
 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
添加m_first=0.0;在构造函数里初始化。
9.为按钮添加事件处理程序。
右击按钮->添加事件处理->选择BN_CLICKED添加编辑。
10.
UpdateData(true);//控件值传给变量
UpdateData(false);//变量值传给控件
11.添加自定义函数,要在头文件中声明。
//自定义函数
void CMyCalculatorDlg::UpdateDisplay(double Val)
{
 m_display.Format(_T("%f"),Val);
 int i = m_display.GetLength();
 while(m_display.GetAt(i-1)=='0')
 {
  m_display.Delete(i-1,1);
  i--;
 }
 UpdateData(false);
}
MyCalculatorDlg.h中声明
public:
 afx_msg void OnBnClickedButtonok();
 afx_msg void OnBnClickedButton0();
 afx_msg void UpdateDisplay(double Val);
};
12.关于消息处理函数。
实际上执行了三个操作。
12.1在My.h中添加函数原型.
12.2在My.cpp中添加函数体。
12.3在My.cpp中添加消息映射。
通过向导删除事件处理函数时,并不删除函数体,需要手工删除。
13.数据交换DDX和校验DDV
13.1当为Edit控件创建变量m_display的时候。
void CMyCalculatorDlg::DoDataExchange(CDataExchange* pDX)
{
 CDialog::DoDataExchange(pDX);
 DDX_Text(pDX, IDC_DISPLAY, m_display);
}
14. error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类
AfxMessageBox(_T("Hi"));
AfxMessageBox(("click"));

错误 error C2665: 'AfxMessageBox' : none of the 2 overloads could convert all the argument types

用的是vc2005
解答: 
VS2005编译器的检查更严格了,在vc6和vc7种可以编译通过的语句:AfxMessageBox(“test”); 
VS2005编译器只能写成AfxMessageBox(_T("test"));才能使用,否则编译器会告诉你有两个AfxMessageBox函数

,但编译器不知道使用哪一个。错误提示如上。

在书写代码的时候要养成使用TEXT("")或_T("")的习惯,这样文本在UNICODE和非UNICODE程序里都通用!




    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/greatverve/archive/2010/11/05/cpp-calculator.html,如需转载请自行联系原作者



相关文章
|
10月前
|
数据可视化 数据挖掘
R中单细胞RNA-seq分析教程 (9)
R中单细胞RNA-seq分析教程 (9)
R中单细胞RNA-seq分析教程 (9)
|
10月前
|
人工智能 运维 自然语言处理
企业内训新范式:从“知识传递”到“战略杠杆”,如何实现培训价值倍增?
据2024年《中国企业培训白皮书》显示,超过68%的央国企和上市公司已将“业务场景实战”作为内训核心指标,而传统通用型课程采购量同比下降27%。在这场变革中,如何让培训从“知识传递”进化为“战斗力转化”? 本文将结合近两年先锋案例,拆解一套可落地的内训体系构建方法论。
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
转载:【AI系统】AI的领域、场景与行业应用
本文概述了AI的历史、现状及发展趋势,探讨了AI在计算机视觉、自然语言处理、语音识别等领域的应用,以及在金融、医疗、教育、互联网等行业中的实践案例。随着技术进步,AI模型正从单一走向多样化,从小规模到大规模分布式训练,企业级AI系统设计面临更多挑战,同时也带来了新的研究与工程实践机遇。文中强调了AI基础设施的重要性,并鼓励读者深入了解AI系统的设计原则与研究方法,共同推动AI技术的发展。
转载:【AI系统】AI的领域、场景与行业应用
|
11月前
|
人工智能 自然语言处理 语音技术
《AI赋能鸿蒙Next:为特殊人群打造无障碍交互新体验》
在科技飞速发展的今天,鸿蒙Next设备借助人工智能技术,显著提升了特殊人群的无障碍交互体验。针对视障人群,提供精准屏幕朗读、视觉辅助智能问答和导航避障辅助;面向听障人群,实现AI声音修复、实时字幕与语音转文字;助力语言障碍者和老年人群体,通过AI优化交流与操作体验。开发者可利用鸿蒙Next的AI能力,深入了解用户需求,进行测试与优化,共同创造友好、便捷的无障碍环境,让特殊人群更好地融入数字社会,享受科技带来的美好生活。
563 8
|
12月前
|
机器学习/深度学习 人工智能 搜索推荐
AI技术在医疗领域的应用与挑战
本文深入探讨了人工智能(AI)技术在医疗领域的应用现状、面临的挑战以及未来发展趋势。随着科技的飞速发展,AI技术正逐渐渗透到医疗行业的各个环节,从疾病诊断、治疗方案制定到患者管理等,都展现出巨大的潜力和价值。然而,AI技术的广泛应用也带来了数据安全、伦理道德、法规监管等一系列挑战。本文旨在通过分析AI技术在医疗领域的实际应用案例,揭示其优势与不足,为推动AI技术在医疗领域的健康发展提供参考。
717 23
|
11月前
|
搜索推荐 数据挖掘 API
阿里巴巴API接口对电商的影响与收益
在全球电子商务快速发展的背景下,阿里巴巴作为领先的B2B平台,为中小企业提供商品批发、分销、供应链管理等一站式服务,并通过开放的API接口为开发者和电商企业提供数据资源与功能支持。本文将深入解析阿里巴巴API接口的功能(如商品搜索、详情、订单和用户管理)、应用(如商品展示、搜索优化、交易管理和用户行为分析)、收益(如流量增长、销售提升、库存优化)及实际案例,附带代码示例,助力电商从业者提升运营效率和用户体验。
364 0
|
12月前
|
自然语言处理 数据可视化 BI
多部门协作难题有解!推荐几款实用的企业协作平台
在现代商业环境中,高效协作工具对于团队成功至关重要。本文推荐5款协作平台:板栗看板、Trello、Asana、Monday.com和ClickUp,它们分别在任务管理、实时沟通、数据安全等方面表现出色,帮助企业实现高效管理,提升项目成功率。选择合适的工具,可以显著提高团队效率和协作效果。
502 0
|
计算机视觉
【方便的Opencv】实现播放有声音的视频+附带图片生成gif
【方便的Opencv】实现播放有声音的视频+附带图片生成gif
1155 0
【方便的Opencv】实现播放有声音的视频+附带图片生成gif
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】人力资源管理的新篇章:AI驱动的高效与智能化
【机器学习】人力资源管理的新篇章:AI驱动的高效与智能化