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

  • 相关阅读:
    mac+chrome 最常用快捷键
    关于<form> autocomplete 属性
    MAC vim修改hosts文件
    git 使用详解(3)—— 最基本命令 + .gitignore 文件
    git 使用详解(2)——安装+配置+获取帮助
    vue动态生成组件
    slot插槽
    provide 和 inject高阶使用
    js正则验证表达式验证
    angular常用命令整理
  • 原文地址:https://www.cnblogs.com/mydomain/p/1965380.html
Copyright © 2011-2022 走看看