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

  • 相关阅读:
    生成token和获取token
    python异常处理
    获取文件路径
    批量导出和批量安装第三方模块
    python操作从数据库中获取数据的接口
    centos中开机时如何自启动samba服务器
    MSSQL 创建自定义异常
    MSSQL 生成拼音码
    MSSQL FOR MXL PATH 运用(转载)
    MSSQL旋转和反旋转的例子
  • 原文地址:https://www.cnblogs.com/mydomain/p/1965380.html
Copyright © 2011-2022 走看看