一·书写问题

1.括号:左右大括号最好都放在左侧,这样可以很清楚大括号的看清配对情况以及作用域,便于检查也不易出错。

2.强制转换:强制转换表达式时一定要加括号,否则可能只转换了表达式中的单个量,可能并不报错,但运行时会出现意想不到的问题,也不易检查。

二·MFC问题

1.VS中MFC程序对于自编.cpp文件,第一句话必须是:#include "stdafx.h"。若文件中#include ""/<>语句放在include "stdafx.h"前,则编译时将被跳过,报错。

2.MFC生成菜单折叠问题:

  解决方法:找到函数int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct),删除或注释其中的如下语句:

CMFCToolBar::SetBasicCommands(lstBasicCommands);

3.回车\Esc默认按钮问题

  对于MFC中对话框,按下“回车”默认调用OnOK();

           按下“Esc”默认调用OnCancel()。

  解决方法:

       (1)去掉“确定”\“取消”按钮的“Default”属性;

       (2)重载OnOK(),删除其中的 CDialog::OnOK(), 可关闭“回车”默认;

        重载OnCancel(),删除其中的 CDialog::OnCancel(),可关闭“Esc”默认;

4.焦点变换问题:

  MFC中注意程序引起的焦点的变化,会导致鼠标一些响应操作出问题。

  因此在每次焦点变化情况与自己需求不符时,利用SetFocus进行交点设置。

三·语法问题

1.数组、指针与句柄:

数组名也是指针;

注意:(a)初始:化程序中一定要对指针、句柄进行初始化,否则随机赋值时指针乱指会对程序造成严重影响;

   (b)赋值:注意深拷贝与浅拷贝;当深拷贝时注意一定要保证指针不指向NULL,否则会报错(因为不能向NULL地址赋值);若指向NULL,则拷贝前一定要给数组分配了内存(经常采用动态分配即new)。

   (c)删除:指针类型使用完后一定及时要释放(最好在指针作用域释放)指针指向的内存(delete[]),不能紧删除指针,否则内存无法释放。句柄使用完后也要进行删除(DeleteObject()).

2.编写函数时注意返回值,在编写函数体内容前先在最后写上返回值;

3.类构造问题:如果类定义中显示的声明了无参构造函数以及析构函数,则即使函数实现的时候函数体并没有任何操作,也必须给出实现。即类中声明的每一个函数都必须给出显示的实现(即使函数体为空,没有操作),否则会报错:error LNK2019与error LNK1120。

四·系统差异

1.windows/linuxs/Mac中“回车”的区别

  在Windows中:

   '\r' 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;

   '\n' 换行,换到当前位置的下一行,而不会回到行首;

  Unix系统里,每行结尾只有“<换行>”,即"\n";Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;Mac系统里,每行结尾是“<回车>”,即"\r";。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

四·效率问题

1.对于频繁使用的间接(需计算得出)变量,新建一个变量表示,以免重复计算影响效率;

2.对于循环体,能写在外部的程序尽量写在在循环体外部,否则在循环体中会多次执行,影响效率;

C++(MFC)编程一些注意事项的更多相关文章

  1. MFC编程之数值调节按钮

    MFC编程之数值调节按钮 一丶数值调节按钮使用的注意事项 CSpinButtonCtrl类是MFC封装的数值调节按钮. 我们要使用数值调节按钮需要注意的事项. 1.数值调节按钮跟一个编辑框配合使用. ...

  2. MFC编程 | tab control控件的使用

    因为课程需要,会用到MFC编程,所以讲一些经验总结下,以便日后使用查询. // tab control控件的使用 // 建立一个Cluster窗口,通过tab可以切换成C-Means和Fuzzy C- ...

  3. MFC编程 | 非模态对话框的定义

    因为课程需要,会用到MFC编程,所以讲一些经验总结下,以便日后使用查询. // 非模态对话框的定义 // 通过单文档菜单调用一个非模态窗口 1.首先在工程里插入一个对话框(如:IDD_DLG_TEST ...

  4. VS2010/MFC编程入门之五(MFC消息映射机制概述)

    VS2010/MFC编程入门之五(MFC消息映射机制概述)-软件开发-鸡啄米 http://www.jizhuomi.com/software/147.html 上一讲鸡啄米为大家简单分析了MFC应用 ...

  5. VS2010/MFC编程入门之四(MFC应用程序框架分析)

    VS2010/MFC编程入门之四(MFC应用程序框架分析)-软件开发-鸡啄米 http://www.jizhuomi.com/software/145.html   上一讲鸡啄米讲的是VS2010应用 ...

  6. VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)

    VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)-软件开发-鸡啄米 http://www.jizhuomi.com/software/143.html   鸡啄米在上一讲中 ...

  7. VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)

    VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)-软件开发-鸡啄米 http://www.jizhuomi.com/software/141.html   上一讲中讲了VS20 ...

  8. VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解)

    原文地址: VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解)-软件开发-鸡啄米 http://www.jizhuomi.com/software/139.html   上一讲中鸡 ...

  9. VS2010/MFC编程入门教程之目录和总结

    鸡啄米的这套VS2010/MFC编程入门教程到此就全部完成了,虽然有些内容还未涉及到,但帮助大家进行VS2010/MFC的入门学习业已足够.以此教程的知识为基础,学习VS2010/MFC较为深入的内容 ...

随机推荐

  1. 新颖的O2O商业模式,江水平和他的装修队

    文/秦刚 江水平是我微信上的朋友,有一天他给我留言说,秦刚老师我觉得你应该采访我,因为我的商业模式非常新颖有趣,应该能够给很多创业者启发. 我让江水平把他的商业模式写给我,他效率很高,一天就写好给我了 ...

  2. OpenShare文档中心

    文档是企业重要的智力资产.在企业中,文档一般都以电子文档的形式存在,比如微软.doc格式,xls格式,ppt格式,pdf格式,纯文本.txt格式等:从内容上,可能是商务合同.会议记录.产品手册.客户资 ...

  3. JS测试浏览器类型的代码

    function getOs(url,title) { var OsObject = ""; if(navigator.userAgent.indexOf("MSIE&q ...

  4. 纯css3 transforms 3D文字翻开翻转3D开放式效果

    详细内容请点击 在线预览立即下载 在本教程中,将基于CSS3创建的一个实现一个有趣的3D开放式效果.教程的目的是展示我们如何能带来一些生活上使用CSS3 . html: <ul class=&q ...

  5. 前端插件Emmet

    Sublime text安装 步骤一:首先你需要为sublime text安装Package Control组件: 按Ctrl+`调出sublime text的console 粘贴以下代码到底部命令行 ...

  6. 拓展开源库SwipeToLoadLayout实现EmptyView和Empty时自动禁用LoadMore

    Android应用开发中,经常需要使用到界面的下拉刷新和上拉加载,在support v7之前,一般都是用ListView去做列表视图,而ListView对EmptyView是提供支持的,并且有许多开源 ...

  7. 【网络收集】如何修改vs tfs的登录名和密码 .

    连接TFS时,如果本机保存了用户的网络密码,不会出现用户名和密码的输入框,若要更换TFS的用户名和密码,需按以下步骤操作:控制面板--->用户账号--->管理网络密码,此时会列出所有保存了 ...

  8. Zend studio 12.5.1破解过程

    开始学习php了 今天又安装了一下Zend  之前找了很久的教程终于成了 , 今天换了一台电脑需要重新安装一下 又点忘记了. 就讲这个过程写下来 1.安装zend studio 12.5.1.这个过程 ...

  9. jquery设置div,文本框 表单的值示例

    我们将使用前一章中的三个相同的方法来设置内容: text() - 设置或返回所选元素的文本内容html() - 设置或返回所选元素的内容(包括 HTML标记)val() - 设置或返回表单字段的值 1 ...

  10. 20140213-想念是while里的死循环

    // stdafx.h : 标准系统包含文件的包含文件,// 或是经常使用但不常更改的// 特定于项目的包含文件// #pragma once#include "targetver.h&qu ...