MFC感悟

1)每个界面(对话框)都是一个类。

2)习惯上IDC表示标签,IDS表示字符串,IDD表示对话框

3)MFC工程编译时有两种方式,

第一:Debug方式

Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。

第二:Release方式

Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。

4)当MFC的一个工程运行缓慢时,可以试着删除.clw   .opt   .dsw文件,然后由.dsp文件再生成,这时编译速度可能有所提高。

5)运行时产生的.obj和.sbr文件都在debug或Release文件中存放。

6)vc6.0中工程可以分为

1.ClassView类视图

2.ResourceView资源视图

3.FileView文件视图

7)如果你在 a.h 里 include "b.h"然后在 a.cpp 里 include "a.h"那结果就是 编译器把 b.h 的内容放在 a.cpp 的最前面 ,然后把 a.h 的内容放在次前面,下面才到 a.cpp 的内容 

8)#pragma once用来防止某个头文件被多次include,#ifndef,#define,#endif用来防止某个宏被多次定义。

9)

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
(1)#ifdef _DEBUG
是编译时预定义的符号,是VC环境默认产生的,在设置中可以找到
表示现在的运行模式时调试态,

(2)#define new DEBUG_NEW 
把 new 这个关键字用  DEBUG_NEW 这个宏替代,在调试状态能检测内存泄露
和帮助管理内存。

(3)#undef THIS_FILE undef和enddif的含义是什么?THIS_FILE是自己编写的?还是系统默认的指定用词?
undef是取消一个符号定义。 endif是便是一条件编译的结束。THIS_FILE就是一个普通的符号名。取消定义后,下面就能安全使用了。



__FILE__是编译器预定义的符号,就是正在编译的文件名。这句话就是声明一个静态的字符串THIS_FILE。

相当于:
static char THIS_FILE[] = "a.c";

10)这些定义被“//{{AFX_DATA”和“//}}AFX_DATA”引用,表示是ClassWizard添加的,程序员不必修改它们。对话框数据交换指以下两种动作,或者是把内存数据写入对应的控制窗口,或者是从控制窗口读取数据并保存到内存变量中。MFC为了简化这些操作,以CDataExchange类和一些数据交换函数为基础,提供了一套数据交换和校验的机制。使用::GetWindowsText从控制窗口读取数据,或者使用::SetWindowsText写入数据到控制窗口。MFC还提供了许多其他数据交换函数(“DDX_”为前缀)和数据验证函数(“DDV_”为前缀)。使用MFC的数据交换和验证机制,大大简化了程序员的工作。通常在OnInitDialog中,MFC调用UpdateData(FALSE)把数据送给控制窗口显示;在OnOk中,调用UpdateData(TRUE)从控制窗口中读取数据。上文中提到DDX_Xxxxx数据交换函数可以进行双向的数据交换,那么它们如何知道数据传输的方向呢?这通过DDX_Xxxxx函数的第一个参数pDX(也就是DoDataEx change的参数pDX)所指的CDataExchange对象来决定,pDX指向一个CdataExchange对象。

11)C++语言是一种半面向对象语言,它兼有C语言的不少全局函数,并非所有的函数都封装在类中的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值