zoukankan      html  css  js  c++  java
  • CallWindowProc

     

    编辑本段基本介绍

      函数功能:该函数CallWindowProc将消息信息传送给指定的窗口过程。
     
      函数原型:LRESULT CallWindowProc(WNDPROC lpPrevWndFunc,HWND hWnd.UINT Msg,WPARAM wParam,LPARAM IParam);
     

    编辑本段参数

      :
     
      lpPrevWndFunc:指向前一个窗口过程的指针。如果该值是通过调用GetWindowLong函数,并将该函数中的nlndex参数设为GWL_WNDPROC或DWL_DLGPROC而得到的,那么它实际上要么是窗口或者对话框的地址,要么就是代表该地址的句柄。
     

      hWnd:指向接收消息的窗口过程的句柄。

     

      Msg:指定消息类型。

     

      wParam:指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。

     

      IParam:指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。

     

      返回值:返回值指定了消息处理结果,它与发送的消息有关。

     

    编辑本段备注

      :使用函数CallWindowsProc可进行窗口子分类。通常来说,同一类的所有窗口共享一个窗口过程。子类是一个窗口或者相同类的一套窗口,在其消息被传送到该类的窗口过程之前,这些消息是由另一个窗口过程进行解释和处理的。

     

      SetWindowLong函数通过改变与特定窗口相关的窗口过程,使系统调用新的窗口过程来创建子类,新的窗口过程替换了以前的窗口过程。应用程序必须通过调用CallWindowsProc来将新窗日过程没有处理的任何消息传送到以前的窗口过程中,这样就允许应用程序创建一系列窗口过程。

     

      如果定义了STRICT,那么lpPrevWndFunc参数具有WNDPROC数据类型。WNDPROC类型说明如下:

     

      LRESULT(CALLBACK· WNDPROC)(HWND, UINT WPARAM,LPARAM)

     

      如果没有定义STRICT,那么lpPrevWndFunc参数具有FARPROC数据类型。FARPROC类型说明如下:int(FAR WINAPL·FARPROC)()

     

      在C语言中,FARPROC申明表示为一个没有指定参数表的回调函数。然而在 C++中;申明中的空参数表示该函数没有参数。这种微妙的区别有可能引起代码出错。下面是一种解决办法:#ifdef STRICT;WNDPROC MyWindowProcedure;#else;FARPROC MyindowProcedure;#endif IResult=CallWindowProc(MyWindowProcedure,…)

     

      有关该函数的空参数表方面进一步的信息,请参考Bjarne Stroustrup编写的C++编程语言第2版。

     

      对于Windows NT:函数CallWindowsProc function进行了Unicode至ANSf转换处理。如果你直接调用该窗口过程,那么无法利用该转换。

     

      速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib:Unicode:在Windows NT环境中以Unicode和ANSI版本实现。

  • 相关阅读:
    RAC安装时,报The specified nodes are not clusterable 的解决方法
    Unix sar 命令
    Linux 修改 IP地址 和 网关
    Oracle ASM 详解
    RAC安装时需要执行4个脚本及意义
    RAC 的一些概念性和原理性的知识
    Oracle 10g RAC 启动与关闭
    Oracle RAC 修改 IP 地址
    Linux 时间同步配置
    RAC安装时,报The specified nodes are not clusterable 的解决方法
  • 原文地址:https://www.cnblogs.com/rosesmall/p/2701101.html
Copyright © 2011-2022 走看看