字体
第(1/4)页
关灯
   存书签 书架管理 返回目录
    2)在类的实现文件中加入消息映shè表:

    BEGIN_MESSAGE_MAP(类名, 父类名)

    ??

    消息映shè表项

    ??

    END_MESSAGE_MAP()

    在CTestApp 类的实现文件TestApp.cpp 的开头、常量定义的后面,就有如下消息映shè表

    的代码:

    /////////////////////////////////////////////////////////////////////////////

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·44·

    // CTestApp

    BEGIN_MESSAGE_MAP(CTestApp, CWinApp)

    //{{AFX_MSG_MAP(CTestApp)

    ON_COMMAND(ID_APP_ABOUT, OnAppAbout)

    // NOTE - the ClassWizard will add and remove mapping macros here.

    // DO NOT EDIT what you see in these blocks of generated code!

    //}}AFX_MSG_MAP

    // Standard file based doccomnt commands

    ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)

    ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)

    // Standard print setup command

    ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)

    END_MESSAGE_MAP()

    MFC AppWizard 生成的应用程都已经自动包含消息映shè的代码,但用户也可以在源程序

    中手动添加。同时Visual C++另一个强大的工具ClassWizard 也提供了处理消息映shè表的自动

    化机制。当然,ClassWizard 只能够生成类和消息处理的框架,包括创建消息处理函数的声明,

    而具体的实现代码还需要用户去补充。

    在类中,消息处理函数都是类的成员函数。当程序要对一个消息进行响应时,消息映shè

    机制就会自动调用该函数。用ClassWizard 添加消息处理函数时,会自动添加以下3 部分内

    容:

    ? 在类的定义中添加该消息处理成员函数的函数声明;

    ? 在类的消息映shè表中加入相应的消息映shè表项;

    ? 在类的实现中加入该消息处理成员函数的函数实现。

    注意ClassWizard 添加的函数实现中,只是一个不能完成任何cāo作的空函数框架,还需

    要加入具体的实现代码。但当用户手动添加消息处理函数时,也必须添加上述3 部分内容。

    对于标准Windows 消息,在CWnd 类中已经预定义了默认的处理函数,有确定的函
上一章 目录 下一页