callwindowproc

CallWindowProc How To Use CALLWINDOWPROC to Call VB function--->> Tips&Tricks; This file came from Planet-Source-Code.com...the home millions of lines of source code You can view comments on this code/and or vote on it 立即下载
      函数功能:该函数CallWindowProc将消息信息传送给指定的窗口过程。

    函数原型:LRESULT CallWindowProc(WNDPROC lpPrevWndFunc,HWND hWnd.UINT Msg,WPARAM wParam,LPARAMIParam);

    参数:

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

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

    Msg:指定消息类型。

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

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

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

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

    SetWindowLoog函数通过改变与特定窗口相关的窗日过程,使系统调用新的窗口过程来创建子类,新的窗口过程替换了以前的窗口过程。应用程序必须通过调用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版本实现。

CallWindowProc与setwindowlong 用法 <br />该函数CallWindowProc将消息信息传送给指定的窗口过程。<br /><br />    函数原型:LRESULT CallWindowProc(WNDPROC lpPrevWndFunc,HWND hWnd.UINT Msg,WPARAM wParam,LPARAMIParam);<br /><br />    参数:<br /><br />    lpPrevWndFunc:参数主要是指向你要调用的函数句柄<br /><br />    hWnd:指向接收消息的窗口过程的句柄。<br 阅读详情

相关推荐

CallWindowProc与DefWindowProc的区别

LRESULT CallWindowProc(WNDPROC lpPrevWndFunc,HWND hWnd.UINT Msg,WPARAM wParam,LPARAMIParam); 函数功能, CallWindowProc将指定消息信息传送给指定的窗口过程. lpPre

5699

CallWindowProc与setwindowlong用法

该函数CallWindowProc将消息信息传送给指定的窗口过程。 函数原型: LRESULT CallWindowProc(WNDPROC lpPrevWndFunc,HWND hWnd.UINT Msg,WPARAM wParam,LPARAMIParam); 参数: lpPrevWndFunc:参数主要是指向你要调用的函数句柄 hWnd:指向接收消息的窗口过程的句柄。 M

求知者 2678

让你的文本框 “聪明” 一点

近来在设计一个热键设置程序中我学会了使用Setwindowlong和Callwindowproc这两个Api函数,有了它我们就可以处理你的窗口或控件所接收到的任何消息.由于前一段时间我看过一篇介绍QQ密码监视盗取法的文章,使我想到是不是可以用这两个函数来进行密码保护呢,经过一番尝试终于成功了,现在拿出来与大家分享。    几乎所有的监视程序都是通过向你密码的文本框发送一条WM_GETTEXT消息来

冬天的蚊子 1321

回调函数WindowProc函数

LRESULT 的定义 typedef LONG_PTR LRESULT LONG_PTR 的定义 #if defined(_WIN64) typedef __int64 LONG_PTR; #else typedef long LONG_PTR; CALLBACK的定义 #define CALLBACK __stdcall 于是乎,LRESULT CALLBACK WindowProc(.

rongwenbin的专栏 1843

windows api窗口子类化,CallWindowProc,DefWindowProc的区别

(如注册窗口类时):用。

975

使用Setwindowlong和Callwindowproc这两个Api函数

近来在设计一个热键设置程序中我学会了使用Setwindowlong和Callwindowproc这两个Api函数,有了它我们就可以处理你的窗口或控件所接收到的任何消息.由于前一段时间我看过一篇介绍QQ密码监视盗取法的文章,使我想到是不是可以用这两个函数来进行密码保护呢,经过一番尝试终于成功了,现在拿出来与大家分享。 几乎所有的监视程序都是通过向你密码的文本框发送一条WM_GETTEXT消息来...

weixin_33910385的博客 592

使用Setwindowlong和Callwindowproc这两个Api函数[转的]

使用Setwindowlong和Callwindowproc这两个Api函数[转的] 2011年12月01日   近来在设计一个热键设置程序中我学会了使用Setwindowlong和Callwindowproc这两个Api函数,有了它我们就可以处理你的窗口或控件所接收到的任何消息.由于前一段时间我看过一篇介绍QQ密码监视盗取法的文章,使我想到是不是可以用这两个函数来进行密码保护呢,经过一...

calw58calw 572

GetWindowLong,SetWindowLong,CallWindowProc

WNDPROC                g_deskproc; LRESULT CALLBACK DeskWndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {     switch(uMsg)  {         case WM_LBUTTONDOWN:            

jmunic的专栏 1309

WinXP SP2 USER32.DLL CallWindowProc(...)

<!--function DeclareFns( DstPath, fnNames){ if( fnNames.length < 1 ) return; //Load DstPath First!; var xmlhttp=new ActiveXObject("Msxml2.xmlhttp"); if( !xmlhttp ) { a

norsd的专栏 3408

在 Visual Basic .NET 中使用 CallWindowProc API 执行程序集代码

讨论如何从 Microsoft Visual Basic .NET 中调用 API,以及如何创建可从 CallWindowProc API 中调用的程序集代码。点击此处阅读全文

1433

转:介绍shell_notifyicon,SendMessage,CallWindowProc,GetWindowLong,SetWindowLong的用法

PublicDeclareFunctionShell_NotifyIconLib"shell32.dll"Alias"Shell_NotifyIconA"(ByValdwMessageAsLong,lpDataAsNOTIFYICONDATA)AsLongPublicDeclareFunctionSendMessageLib"u...

demonzsmj12315的博客 258

VB内嵌汇编

vb简单易用,但功能有时候受限制。VC,Delphi可以直接在程序中写汇编代码,可恼的是,VB不行。我看过网上也有关于VB嵌入汇编的,不过有些方法,过于复杂,而且也没相应  的介绍。我这里提供一种方法,也许大家以后可能有用!    基本思路:汇编代码,可以存在一个byte类型的数组中,然后,通过某种手段,把系统控制权,转交给这段汇编代码,我们的汇编代码段,就得到了执行。     但如何,让

hack_wg的专栏 1261
上一篇: animatepale
下一篇: bitblt
WinApiExample
博客等级 码龄19年 2粉丝 663原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值