zoukankan      html  css  js  c++  java
  • MFC DAY02

    一 窗口的创建(2)
    1 加载菜单
    2 调用CreateEx成员函数,注册窗口类/创建窗口
    2.1 调用PreCreateWindow成员函数 设计并注册窗口类
    1)调用AfxDeferRegisterClass全局函数设计窗口类
    WNDCLASS wndcls;
    wndcls.lpfnWndProc = DefWindowProc;
    .....
    并调用 AfxRegisterClass全局函数,在这个函数
    中调用WIN32 API 函数::RegisterClass注册一个
    局部窗口类 类名称为"AfxFrameOrView42sd"
    2.2 调用AfxHookWindowCreate函数
    1)利用::SetWindowsHookEx在程序中埋下一个类型
    为WH_CBT的钩子。
    2)将自己new的框架类对象地址(pFrame)保存到
    当前程序线程信息中。
    2.3 调用WIN32 API 函数 ::CreateWindowEx创建窗口
    此函数一旦执行成功,马上执行钩子处理函数。
    3 钩子处理函数
    3.1 将 窗口句柄 和 框架类对象 建立一对一绑定关系
    3.2 将 窗口处理函数 更改为
    AfxWndProc(真正的窗口处理函数)
    二 AfxWndProc(窗口处理函数)处理消息的执行过程
    1 利用消息所属窗口句柄,找到和它绑定在一起框架类
    对象地址(pFrame)。
    2 利用框架类对象地址(pFrame)调用框架类的成员虚函
    数(WindowProc),完成消息的处理。

  • 相关阅读:
    python之模块与包
    python之模块4
    python之模块3
    python之模块2
    Day10:Linux基础:搭建samba服务
    Day9:Linux基础:程序管理
    Day8: Linux基础片:网络配置
    番外篇:硬盘分区、创建文件系统
    Day7: Linux基础片:系统监控
    Day6: Linux基础片:文件压缩、Vim用法
  • 原文地址:https://www.cnblogs.com/Renekton/p/3864139.html
Copyright © 2011-2022 走看看