《深入浅出MFC》学习笔记之一

转载 2005年03月03日 12:22:00

-——《深入浅出MFC》学习笔记之一

 

作者:XGM   RRC.BIT 记于2001-8-10 

 

 

    龚建伟评:这篇学习笔记虽然不是系统的阐述某个问题,但读来让人感到收获不小,无论你是老鸟还是菜鸟,都会认同的。我希望XGM能够继续写下去,看了《深入浅出MFC》再来看这些笔记,也有温故知新之感

俟杰先生的《深入浅出MFC》是一本好书,本人是作为有一定C++基础知识并对VC有一点感性认识的VC初学者来接触这本书的。应该说这本书并不真正适合像我这样的初学者,但通读完该书,还是有一些收获的,现只整理其中的一部分,作为我的一个学习笔记吧。

1.  安装VC++,为什么要先安装Internet Explorer?(是不是很多老鸟也不知道啊,侯俊杰先生的宗旨就是知其然,还要知其所以然,5555555555 …………

因为微软的所有Visual Tools(包括Visual C++Visual BasicVisual FoxProVisual J++Visual InterDev)都集中由所谓的Visual Studio 管理,而这些工具有一个极大的目标,就是要协助开发Internet应用软件,所以它们希望能够和IE有所搭配。

2.  SDKSoftware Development Kit 原指软件开发工具,但现在已经变成了一个专有名词,凡以Windows raw API撰写的程序通常也称为SDK程序。也有人把Windows API称为SDK API

3.  不同种类之对象的构造函数(对象诞生后第一个执行并且是自动执行的函数)及析构函数(对象行将毁灭,但未毁灭之前一刻,最后执行并且自动执行的函数)执行时机对比如下:

 

 

全局对象

局部对象

静态对象

new产生的对象

构造函数

程序一开始就执行(比程序进入点更早)

对象诞生时执行

析构函数

程序即将结束时执行

程序流程离开该对象的存活范围时执行

程序将结束时执行,但比全局对象的析构函数早一步进行。

对象被delete时执行

4.  C++并不是纯种的面向对象语言(SmallTalk Java才是)。所以,MFC之中得以存在有不属于任何类的全局函数,它们统统在函数名称开头冠以Afxx并没有什么意思,只是为了凑成一个响亮的名字,AfApplication Framework
下面是常见的Afx全局函数:
AfxBeginThread
:开始一个新的线程
AfxEndThread
:结束一个旧的线程
AfxFormatString1
:类似printf一般地将字符串格式化
AfxFormatString2
:类似printf一般地将字符串格式化
AfxMessageBox
:类似Windows API 函数 MessageBox
AfxOuputDebugString
:将字符串输往除错装置
AfxGetApp
:获得application object (CwinApp派生对象)的指针
AfxGetMainWnd
:获得程序主窗口的指针
AfxGetInstance
:获得程序的instance handle

5.  MFC数据类型
下面这些是和Win32程序共同使用的数据类型
BOOL
:布尔值,取值为TRUE  or  FALSE
BSTR
32-bit 字符指针
BYTE
8-bit整数,未带正负号
COLORREF
32-bit数值,代表一个颜色值
DWORD
32-bit整数,未带正负号
LONG
32-bit整数,带正负号
LPARAM
32-bit整数,作为窗口函数或callback函数的一个参数
LPCSTR
32-bit指针,指向一个常数字符串
LPSTR
32-bit指针,指向一个字符串
LPCTSTR
32-bit指针,指向一个常数字符串,此字符串可以移植到UnicodeDBCS
LPTSTR
32-bit指针,指向一个字符串,此字符串可以移植到UnicodeDBCS
LPVOID
32-bit指针,指向一个未指定类型的数据
LPRESULT
32-bit数值,作为窗口函数或callback函数的返回值
UINT
:在Win16中是一个16-bit 未带正负号整数,在Win32中是一个32-bit 未带   正负号整数,
WNDPROC
32-bit指针,指向一个窗口函数
WORD
16-bit 整数 ,未带正负号
WPARAM
:窗口函数或callback函数的一个参数,在Win16中是16-bit,在Win32中是32-bit

下面这些是MFC独特的数据类型
POSITION
:一个数值,代表collection对象(例如数组或链表)中的元素位置,常 用于MFC collection classes(即数据处理类,如CArray
LPCRECT
32-bit指针,指向一个不变的RECT结构

6.  奇怪的窗口类名称Afx:b:14ae:6:3e8f
   
Spy++VC++所附的一个工具)观察窗口类的名称时,会发现窗口类名称变成像Afx:b:14ae:6:3e8f这副奇怪的模样?

原来是Application Framework 把窗口类的名称转换为Afx: x y z w的类型,成为独一无二的窗口类型名称:

x:窗口风格的hex

y:窗口鼠标光标的hex

z:窗口后台颜色的hex

w:窗口图标的hex

7.  Serializable   的必要条件

让一个对象有Serializable能力,它必须派生自一个Serializable类,一个类要成为Serializable,必须有下列五大条件:

(1)Cobject派生下来,如此一来,可保有RTTI、动态生成等机能

(2)类的声明部分必须有DECLARE_SERIAL宏,此宏需要一个参数:类名称

(3)类的实作部分必须有IMPLEMENT_SERIAL宏,此宏需要三个参数:一是类名称,二是基类名称,三是 schema no.

(4)改写Serialize虚拟函数,使它能够适当地把类的成员变量写入档案中

(5)为此类加上一个default构造函数(也就是无参数之构造函数),这个条件常为人所忽略,但它是必要的,因为若一个对象来自档案,MFC必须先动态生成它,而且在没有任何参数的情况下调用其构造函数,然后才从档案中读出对象数据。

 

 

唉,好东东实在太多了,比如对MFC六大关键技术之仿真,三大宏的内部揭密等等(咦,我不是在推销这本书吧,呵呵)感兴趣的话请看看这本书吧,可以找我借哦,所谓“书非借不能读也”。呵呵………

简单而完整:MFC骨干程序(深入浅出MFC之读书笔记)

Document/VIew是MFC的灵魂。CDocument可以内嵌其他对象(用来处理基本数据类型如链表、数组等等)。有关档案读写的操作在CDocument的Serialize函数中进行,有关画面显示...
  • xringm
  • xringm
  • 2016年03月29日 13:21
  • 829

《深入浅出MFC》学习笔记之一

    龚建伟评:这篇学习笔记虽然不是系统的阐述某个问题,但读来让人感到收获不小,无论你是老鸟还是菜鸟,都会认同的。我希望XGM能够继续写下去,看了《深入浅出MFC》再来看这些笔记,也有温故知新之感俟...
  • lcj8
  • lcj8
  • 2007年11月17日 00:38
  • 604

《深入浅出MFC》学习笔记之一

作者:XGM   RRC.BIT 记于2001-8-10        龚建伟评:这篇学习笔记虽然不是系统的阐述某个问题,但读来让人感到收获不小,无论你是老鸟还是菜鸟,都会认同的。我希望XGM能够继续...
  • Acewind
  • Acewind
  • 2004年11月12日 09:37
  • 984

深入浅出MFC:《深入浅出MFC》入手基础指南

作为一个曾经想学习Windows程序设计的萌新,在听从老师的教导下入手了《深入浅出MFC》一书,但是不得不说,作为当时的我入手这本书实在太坑了,,完全看不懂,勉强看懂也理解不了,更不知道其价值,以至于...
  • qq_30168505
  • qq_30168505
  • 2016年09月26日 16:18
  • 2324

评侯捷的《深入浅出MFC》和李久进的《MFC深入浅出》

侯捷的<深入浅出MFC>相信大家都已经很熟悉了,论坛上也有很多介绍,这里我就不多说了。        而李久进的<MFC深入浅出>,听说的人可能就少得多。原因听说是这本书当时没有怎么宣传,而自从1...
  • softfox
  • softfox
  • 2013年02月18日 15:22
  • 3396

深入浅出MFC(第一章)

第一章    勿在浮沙筑高台 摘要:win32、console、进程、线程、优先级 Windows SDK程序开发流程(32位): Windows程序调用的函数可分为C Runtimes...
  • trustnature
  • trustnature
  • 2012年10月10日 11:12
  • 1561

发布深入浅出mfc配套的源代码

最近为了一个软件,努力学习vc++和mfc,以前听人说c++是多么多么的难,当时心里还不屑一顾,今天切身体会到了,c++实际上不是很难,在很多地方和java很象,只能说c++是介于c和面向对象的编程之...
  • luanfengxia
  • luanfengxia
  • 2006年05月09日 21:49
  • 3206

《深入浅出MFC(第二版)》

 原书名: 《深入浅出MFC(第二版)》原出版社: 作者:侯俊杰(侯捷)译者: 书号:7-900614-93-1页码:736开本:16开版次:1-1丛书名:侯捷译作系列出版社:...
  • SStallMan
  • SStallMan
  • 2004年10月19日 22:38
  • 1717

《深入浅出WPF》学习笔记之一

发现一本对WPF讲解的十分透彻的教程,是刘铁猛大大的《深入浅出WPF》的讲解视频。讲得很清晰。 视频地址:  《深入浅出WPF》视频列表 以下是 新建WPF项目 课程的笔记。 c# 编译器:M...
  • goon202
  • goon202
  • 2016年05月10日 00:09
  • 469

学习《深入浅出MFC》总结(上)

 看到现在,基本对这本书的主要内容有了一定的了解,好像有很多东西要总结,又觉得理不出头绪,还是简短点吧:第一、   侯老师对MFC的认识确实是深入骨髓;第二、   对RTTI、dynamic crea...
  • fightingx
  • fightingx
  • 2008年02月18日 21:32
  • 989
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《深入浅出MFC》学习笔记之一
举报原因:
原因补充:

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