当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 作者: 林水怒 来源:zdnet CObject和CRuntimeClass是MFC中两个非常重要的类/结构,绝大部分MFC类都是以CObject做为基类, CRuntimeClass结构同CObject密不可分,了解它们对于深入理解MFC具有重要意义。
 

 

    摘要:信息产业部电子第二十二研究所 郎锐 一、引言 钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。钩子的种类很多,每种钩子可以截获并处理相应的消息,每当特定的消息发出,在到达目的窗口之前,钩子程序先行截获该消息、得到对此消息的控制权。此时钩子函数可以对截获的消息进行加工处理,甚至可以强制结束消息的传递。这有点类似与mfc中的pretranslatemessage函数,所不同的......
 ·浅议软件封面的制作方法    »显示摘要«
    摘要:曹朝晖 问题的提出 软件封面是指软件启动加载时显示的背景画面,它不但可以起到吸引用户目光的作用,更重要的是当一些程序的初始化工作需要数秒钟时,软件封面可以用来向用户提供一些与该软件相关的信息。软件封面一般包含了软件名称、版本、用户名、用户所在的公司名等信息,显示方式一般分为静态画面和动画。软件封面的制作方法有多种,从易到难,由浅到深,编程人员可以根据需要选择不同的制作方法。本文介绍3种软件封......


了解CObject 和 CRuntimeClass
上一页   ...

// implementation 【程序编程相关:关于GetRecordCount函数的使

【推荐阅读:socket实现tcp/ip服务端源码,

static cruntimeclass* pascal load(carchive& ar, uint* pwschemanum); 【扩展信息:在VC中编译、运行程序的小知识点

void store(carchive& ar) const;

// cruntimeclass objects linked together in simple list

cruntimeclass* m_pnextclass; // linked list of registered classes

};

二.cobject类

cobject是mfc类的大多数类的基类,主要是通过它实现:

(1).运行类信息;(2).序列化;(3).对象诊断输出;(4).同集合类相兼容;

(1).运行时类信息:

注意:要想使用cruntimeclass结构得到运行时类信息,你必须在你的类中包括declare_dynamic/implement_dynamic. declare_dyncreate/implement_dyncreate或declare_serial/implement_serial.但你的类必须是从cobject派生的才能使用这些宏, 因为通过declare_dynamic将定义一个实现如下的函数:

cruntimeclass* pascal b::_getbaseclass()

{

return runtime_class(base_name);

}

其中的runtime_class是这样定义的

#define runtime_class( class_name ) \

(cruntimeclass *)(&class_name::class##class_name);

即得到类中的cruntimeclass对象指针,显而易见,如果没有基类你用implement_dynamic时将得到一个编译错误. 除非你象cobject一样不用declare_dynamic而定义与实现了这些函数,cobject中的getbaseclass只是简单的返回null.
...   下一页
 ·任务条状态区的应用    »显示摘要«
    摘要:windows95的任务条(taskbar)上有一个状态区,可以显示当前输入法(中文版)、当前时间等信息,当启动打印管理器时还可显示打印管理器的图标,表明打印机正在工作。我们可以使用这一技术为正在后台工作的程序设置一个图标,以显示它的工作状态,用户可以通过鼠标点击来查询详细情况或修改工作参数。下面对其实现方法作一介绍。 图标的添加和删除 实现这两个操作都是通过调用shell_notifyi......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE