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

📄 untitled-21.txt

📁 mfc 教程
💻 TXT
字号:
        和END_MESSAGE_MAP的调用之间处理消息。
    3.添加成员函数来处理消息。
    Hello的CMainwindow类只处理一种消息类型——WM.PAINT,因此其消息映射的实现
如下所示:
      BEGINMESSAGE.MP(CMainwindow, CFramewnd)
            ONWM- PAINT()
      END_MESSAGE.MAP()
BEGIN.MESSAGE_MAP开始了消息映射,并标识了消息映射所属的类和该类的基类(消息
映射就像其他的类成员那样,可以通过继承来传递。其中需要有基类名,这样框架就可以在
必要时查找基类的消息映射)。END_MESSAGE_MAP结束了消息映射。在BEGIN—MES-
SAGE_MAP和END.MESSAGE_MAP之间是消息映射条目。ON.WM.PAINT是一个在MFC
头文件Afxmsg.h中定义的宏。它将处理WM.PAINT消息的条目添加到消息映射中。该
宏不接收参数,因为将WM.PAINT消息链接到名为OnPant的类成员函数是不需要代码的。
MFC为100多种从WM.ACTIVATE到WM.WININICHANGE的Window。消息提供了宏。您
可以从MFC文档中获取与特定的ON.WM宏相对应的消息处理程序的名称,然而要自己推
断名称也是相当容易的,您可以将WM一替换为on,将除那些单词开头字母之外的所有其他
字母变为小写字母。因此,如 WM.PAINT变为 onPaint、WM.LBUTTONDOWN变为 OnLBut-
tonDo。等等。
    您将需要参考MFC文档,以决定一个消息处理程序接收何种类型的参数以及返回何种
类型的值。onPaint不接收参数,也没有返回值,而onLButtonDown的函数原型是这样的:
      afx-msg void OnLButtonDown(UINT nFlaqs, CPoint point)
"Flags包含指定鼠标和Ctrl及Shift键的状态的位标记,point标识了鼠标单击的位置。传递
给消息处理程序的参数来自于伴随消息的wParam和IParm参数。但是,鉴于wParam和
IParam是普遍需要的,因而传递给MFC消息处理程序的参数既是特定的也是类型安全的。
    如果您希望处理一个MFC没有为之提供消息映射宏的消息时会怎么样呢?您可以使
用普通的ON_MESSAGE宏为消息创建一个条目,该宏接受两个参数:消息ID和对应类成
员函数的地址。下面的语句就将WM_SETYEXT映射到了一个名为onsetText的成员函数:
      ON.MESSAGE(WbL-SETTEXT, OnsetText)
onsetText应以如下的方式进行声明:
      af。。sq LRESULT OnsetText(WPAItAM wParam,  LPARAM IPara。);
由MFC提供的其他特殊用途的消息映射宏包括:ON—COMMAND,它将菜单选择和其他的
UI事件映射到类成员函数;ON_UPDATE.COMMAND.UI,它将菜单项和其他UI对象连接到

⌨️ 快捷键说明

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