32、深入浅出MFC学习笔记,ActiveX Controls及更多学习资料

简介: 1、组件是对数据和方法的简单封装。 2、Tip of the day. 3、ActiveX control 的三个接口也有类似性质: ■ property:相当于C++ 类别的成员变量 ■ method:相当于C++ 类别的成员函数 ■ event:相当于Windows 控制组件发出的notifi...

1、组件是对数据和方法的简单封装。<?xml:namespace prefix = o />

2Tip of the day.

3ActiveX control 的三个接口也有类似性质:

property:相当于C++ 类别的成员变量

method:相当于C++ 类别的成员函数

event:相当于Windows 控制组件发出的notification 消息

1)一般而言properties 可分为四种类型:

Ambient properties

Extended properties

Stock properties

Custom properties

2)一般而言events 可分为两种类型:

Stock events

Custom events

4、类别型录网:所有类别相关信息(包括类别名称及建构函式)组成的类别型录网络(一个链表),然后把类别名称的比对动作埋藏在 Serialize 虚拟函数中。

    类别型录网络中的每一个成员就是 CRuntimeClass 对象,网络的组成则是藉由类别宣告时的DECLARE_DYNCREATE IMPLEMENT_DYNCREATE 宏完成。RUNTIME_CLASS 宏就是取出「类别型录网络」中的一个元素(代表一个类别)。

    所以,当你的程序一开始执行,整个 MFC 的绝大部份类别,都已经放在这个「类别型录网络」之中。有了这网络,RTTI(执行时期型别辨识)和 Dynamic Creation 都不是问题。

5persistence,(MFC 称之为 serialization)。

注:我发现台湾人称链表为串列,函数为函式,宏为巨集,还有的把对象称为物件,dump(转储)为倾印,把进程称为行程,把程序称为程式。

6、在MFC中,所有的诊断指令或宏(包括TRACE)事实上都流经一个名为afxDump的对象之中, 那是一个 CDumpContext 对象。所有的诊断动作都进入

CDumpContext::OutputString 成员函数,然后才进入全域函数 AfxOutputDebugString,把字符串送往除错器。

7、如何使用TRACEWIN.h[4]

跟踪调试的小程序,由Paul DiLascia设计。

1)把CMfxTrace类别含入到自己的程序中,像这样:

#include "tracewin.h"

并在程序的任何地方(通常是 InitInstance 函式内)做此动作:

CMfxTrace::Init();

2)然后所有的TRACE字符串输出就会流到Tracewin视窗上。

注意,TRACEWIN.H中不但有类别宣告,还有类别定义,和一般的表头档不太一样,所以只能够在你的程序中含入一次TRACEWIN.H

    另一款调试工具是LODPRF32

参考

[1] 深入浅出MFC

[2] Visual C++ Sample Applications

http://msdn.microsoft.com/en-us/library/1370z17c%28VS.80%29.aspx

[3] Visual C++ Samples and Related Documentation for Visual Studio 2010

http://archive.msdn.microsoft.com/vcsamples

[4] MFC/.NET Trace diagnostics window by Paul DiLascia

http://dilascia.com/TraceWin.htm

目录
相关文章
Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件
Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件
Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件
Qt开发Activex笔记(三):C#调用Qt开发的Activex控件
Qt开发Activex笔记(三):C#调用Qt开发的Activex控件
Qt开发Activex笔记(三):C#调用Qt开发的Activex控件
|
UED 数据挖掘 数据可视化
|
C++ 安全 JavaScript
|
JavaScript 程序员 C#