DECLARE_MESSAGE_MAP 、BEGIN_MESSAGE_MAP、END_MESS AGE_MAP DECLARE_MESSAGE_MAP() 说明: 用户程序中的每个 CCmdTarget 派生类必须提供消息映射以处理消息。在类定义的末尾使 用 DECLARE_MESSAGE_MAP 宏。接着,在定义类 成员函数的.CPP 文件中,使用 BE GIN_MESSAGE_MAP 宏,每个用户消息处理函数的宏项下面的
列表以及 END_MESSAG E_MAP 宏。 注释: 如果在 DECLARE_MESSAGE_MAP 之后定义任何一个成员,那么必须为他们指定一个新 存取类型(公共的,私有的,保护的)。 BEGIN_MESSAGE_MAP(the class,baseclass) END_MESSAGE_MAP 说明: 使用 BEGIN_MESSAGE_MAP 开始用户消息映射的定义。 在定义用户类函数的工具
(.cpp) 文件中, BEGIN_MESSAGE_MAP 宏开始消息映射, 以 然后为每个消息处理函数增加宏项, 接着以 END_MESSAGE_MAP 宏完成消息映射。 9、消息映射宏:ON_COMMAND 、ON_CONTROL、ON_MESSAGE、ON_VBXEVENT、 ON_Update_COMMAND_UI 和 ON_REGISTERED_MESSAGE ON_COMMAND(id,memberFxn) 说明: 此宏通过 ClassWizard 或手工插入一个消息映射。它表明那个函数将从一个命令用户接口 (例如一个菜单项或 toolbar 按钮)处理一个命令消息。 当一个命令对象通过指定的 ID 接 受到一个 Windows WM_COMMAND 消息时,ON_COMMAND 将调用成员函数 member Fxn 处理此消 息。在用户的消息映射中,对于每个菜单或加速器命令(必须被映射到一个 消息处理函数)应该确实有一个 ON_COMMAND 宏语句。 ON_CONTROL(wNotifyCode,id,memberFxn) 说明: 表明哪个函数将处理一个常规控制表示消息。 控制标识消息是那些从一个控制夫发送到母窗 口的消息。 ON_MESSAGE(message,memberFxn) 说明: 指明哪个函数将处理一用户定义消息。 用户定义消息通常定义在 WM_USER 到 0x7FF 范围 内。用户定义消息是那些不是标准 Windows WM_MESSAGE 消息的任何消息。在用户的 消息映射中,每个必须被映射到一个消息处理函数。用户定义消息应该有一个 ON_MESS AGE 宏语句。 ON_Update_COMMAND_UI(id,memberFxn)
说明: 此宏通常通过 ClassWizard 被插入一个消息映射,以指明哪个函数将处理一个用户接口个 更改命令消息。在用户的消息映射中,每个用户接口更改命令(比讯被映射到一个消息处理 函数)应该有一个 ON_Update_COMMAND_UI 宏语句。 ON_VBXEVENT(wNotifyCode,memberFxn) 说明: 此宏通常通过 ClassWizard 被插入一个消息映射,以指明哪个函数将处理一个来自
VBX 控 制的消息。在用户的消息映射中每个被映射到一消息处理函数的 VBX 控制消息应该有一个 宏语句。 ON_REGISTERED_MESSAGE(nmessageVarible,memberFxn) 说明: Windows 的 RegisterWindowsMesage 函数用于定义一个新窗口消息,此消息保证在整个
系统中是唯一的。此宏表明哪个函数处理已
注册消息。变量 nMessageViable 应以 NEAR 修饰符来定义。 10、DEBUG_NEW #define new DEBUG_NEW 说明: 帮助查找内存错误。用户在程序中使用 DEBUG_NEW,用户通常使用 new 运算符来从堆上 分配。在 Debug 模式下(但定义了一个 DEBUG 符号), DEBUG_NEW 为它分配的每个 对象记录文件名和行号。然后,在用户使用 CMemoryState::DumpAllObjectSince 成员函数 时,每个以 DEBUG_NEW 分配的对象分配的地方显示出文件名和行号。为了使用 DEBU G_NEW,应在用户的资源文件中插入以下指令: #define new DEBUG_NEW 一旦用户插 入本指令,预处理程序将在使用 new 的地方插入 DEBUG_NEW,而 MFC 作其余的工作。 但 用户编译自己的
程序的一个发行版时,DEBUG_NEW 便进行简单的 new 操作,而且不 产生文件名和行号消息。 11、异常宏:TRY、CATCH 、THROW、AND_CATCH、THROW_LAST 和 END_CATC H TRY 说明: 使用此宏建立一 TRY 块。一个 TRY 识别一个可排除异常的代码块。这