zoukankan      html  css  js  c++  java
  • 19、深入浅出MFC学习笔记,关键技术简介

    书中讲这了RTTI,Dynamic Creation,Persistance,Message Mapping,Message Routing等的实现。[1]

    尤其是其中的类别型录网的建立过程值得学习。

    1MFC对于消息循环的规定:

    (1) 如果是普通的Windows消息,则一定由派生类流向基类,不会有迂回。

    (2) 如果是命令消息(WM_COMMAND),则路径十分复杂,下面总结命令消息的传递。

    MFC为命令消息搜索相应消息处理函数的过程是:由菜单、工具栏等用户界面对象产生的命令消息,首先送给主框架窗口的标准MFC窗口函数;然后,窗口函数把命令传给MFC主框架窗口对象,进行命令消息的派送,并按表中的次序进行消息匹配。若找不到,则先继续搜索其基类的消息映射入口表,若都找不到,再迂回到下一个对象进行处理。

    表 命令消息的迂回搜索路径

    程序类型

    路径

    SDI(单文档)

    当前视图→当前文档→文档模板→主框架窗口→应用程序对象

    MDI(多文档)

    当前视图→当前文档→创建文档的文档模板→活动的子框架窗口→主框架窗口→应用程序对象

    对话框

    当前对话框→对话框的父窗口→应用程序对象

        最后如果都找不到,则由默认的Windows消息处理函数结束该命令消息。

        为了提高消息匹配的效率,MFC内部有一个消息缓冲池,使用以消息值为关键字的散列(哈希)查找,池中可存放512条最近使用过的消息映射入口表项的有关信息(注意只需放入口表项­,即两个指针)。只有在消息缓冲池中匹配不到才进行前文所叙的搜索过程。[2]

    参考

    [1] 深入浅出MFC

    [2] http://cc.seu.edu.cn/mm/cppsite/mfc/htms/kejian/07_2_6.htm

  • 相关阅读:
    事件冒泡
    jquery validation验证身份证号、护照、电话号码、email
    移动平台对 meta 标签的定义
    css3属性笔记
    渐变的参数
    各浏览器前缀
    Ubuntu20.04安装Matlab2018b
    win7 php安装使用
    mysql输入命令后没响应
    CentOS7上搭建Dokuwiki
  • 原文地址:https://www.cnblogs.com/mydomain/p/1965380.html
Copyright © 2011-2022 走看看