⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d023.bmp.txt

📁 Visual C++通信编程工程实例精解(附盘)
💻 TXT
字号:
函数:SendMessage、PostMessage和SendDlgItemMessage。而消息处理则相对来说显得复杂
一些。MFC采用了一种新的机制取代C语言编程时对Windows消息的Switch/Case分支,
简化了Windows编程,使程序的可读性、可维护性大大提高。
    1.MFC对消息的处理
    MFC不使用C语言编写Windows程序时用到的易产生错误的switch/case语句,而采用
一种消息映射机制来决定如何处理特定的消息。这种消息映射机制包括一组宏,用于标识消
息处理函数、映射类成员函数和对应的消息等。其中,用afx_msg放在函数返回类型前面,
用于标记它是一个消息处理成员函数。类若已至少包含了一个消息处理函数,那么还需要加
上一个DECLARE_MESSAGE_MAPO宏,该宏对程序执行部分所定义的消息映射进行初始
化。下面给出一个消息处理函数的例子:
    class CMainFrame:CFrameWndf
    public:
    CMainFrame();
    protected:
    //{{ AFX_MSG(CMainFrame)
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    afx_msg void OnEditCopy0;
    afx_msg void OnClose0;
    /,} }AFX_MSG
    DECLARE_MESSAGE_MAP()
    J;
    成员函数OnCreate、OnEditCopy、OnClose分别用来处理消息WM_CREATE、ID_EDIT_
COPY和WM_CLOSE。其中,WM_CREATE和WM_CLOSE是系统预定义消息,包含在
Windows.h中。而ID_EDIT_COPY是菜单“Edit”一“Copy”的标识,也就是用户选择“Edit,,
一“Copy”菜单项时产生的消息,一般在资源文件头文件中定义。在类的实现部分给出这三
个成员函数的定义,以及特殊的消息映射宏。上面的例子的消息映射宏定义如下:
    B EGIN_MESS AGE_MAP(CMainFrame,CFrameWnd)
    ON_WM_CREATE()
    ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
    ON_WM_CLOSEO
    END_MESSAGE_MAPO
    消息映射宏由BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()组成,表示映射函
数与消息韵对应关系的代码在BEGIN_MESSAGE_MAPO和END_MESSAGE_MAP()之间。
其中,BEGIN_ MESSAGE MAP宏包含两个参数CMainFrame类和CFrameWnd,分别代表
当前定义的类和它的父类。在BEGIN_MESSAGE_MAP()和END_MESSAGE_MAPO之间,
包含了主窗口要处理的各个Windows消息的入口。在本例中,包含三个消息。其中,
ON_WM_CREATE被用来指定默认的成员函数OnCreate与WM_CREATE相对应。在MFC
中,包含了大量的预定义消息映射宏,用来指定各种成员函数与各种形如WM_ XXXX的消
息相对应。如ON_WM_CLOSE宏指定了WM_CLOSE消息的处理成员函数为OnClose。这
时候,只需要写出要处理的消息就够了,不必再写出处理函数。消息映射宏ON_COMMAND
    23

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -