• 回调函数


    第二个成员变量lpfnWndProc指定了这一类型窗口的过程函数,也称回调函数。

    回调函数的原理:当应用程序收到给某一窗口的消息时(还记得前面讲过的消息通常与窗口相关的吗?),

    就应该调用某一函数来处理这条消息。这一调用过程不用应用程序自己来实施,而由操作系统来完成,

    但是回调函数本身的代码必须由应用程序自己完成。

    对于一条消息,操作系统到底调用应用程序中的哪个函数(回调函数)来处理呢?

    操作系统调用的就接受消息的窗口所属的类型中的lpfnWndProc成员指定的函数。

    每一种不同类型的窗口都有自己专用的回调函数,该函数就是通过lpfnWndProc成员指定的。

    举例:汽车厂家(应用程序)生产汽车(窗口)好比应用程序创建窗口,用户(操作系统)使用汽车(窗口)好比操作系统管理窗口,

    某种汽车(窗口)在销售前就指定好了修理站(类似回调函数),当用户(操作系统)的汽车(窗口)出现故障后(类似窗口收到消息),

    汽车用户(操作系统)自己直接找到修理站(回调函数)去修理,不用厂家(应用程序)亲自

    将车送到修理站去修理,但修理站还得由厂家(应用程序)事先建造好。

     

    Windows中数据类型     对应的基本数据类型                   说明

    BOOL               bool                布尔值
    BSTR             unsigned short *           32位字符指针
    BYTE             unsigned char             8位无符号整数
    COLORREF          unsigned long              用作颜色值的32位值
    DWORD            unsigned long            32位无符号整数,段地址和相关的偏移地址
    LONG               long               32位带符号整数
    LPARAM               long               作为参数传递给窗口过程或回调函数的32位值
    LPCSTR             const char *           指向字符串常量的32位指针
    LPSTR               char *             指向字符串的32位指针
    LPVOID                 void *             指向未定义类型的32位指针
    LRESULT                long             来自窗口过程或回调函数的32位返回值
    UINT             unsigned int             32位无符号整数
    WORD              unsigned short             16位无符号整数
    WPARAM            unsigned int            当作参数传递给窗口过程或回调函数的32位值

     数据类型的前缀是P或LP,表示是一个指针或长指针数据类型前缀是U,表示无符号数据类型,等等。

  • 相关阅读:
    冒泡排序(C#实现)
    CLR 学习笔记:程序集加载和反射(3)
    CLR 学习笔记:程序集加载和反射(2)
    CLR 学习笔记:程序集加载和反射(1)
    Effective C#:使用Conditional特性而不是#if条件编译
    Effective C#:推荐使用is或as操作符而不是强制类型转换
    基于线性探测法的散列表
    红黑树-算法四 实现
    二叉树的中序遍历的思想
    二叉树的删除操作-java
  • 原文地址:https://www.cnblogs.com/luoquan/p/4900556.html
Copyright © 2020-2023  润新知