CallWindowProcshell调用函数返回值的返回值有什么用

5949人阅读
Windows(12)
该函数CallWindowProc将消息信息传送给指定的窗口过程。&&&&函数原型:LRESULT CallWindowProc(WNDPROC lpPrevWndFunc,HWND hWnd.UINT Msg,WPARAM wParam,LPARAMIParam);&&&&参数:&&&&lpPrevWndFunc:参数主要是指向你要调用的函数句柄&&&&hWnd:指向接收消息的窗口过程的句柄。&&&&Msg:指定消息类型。&&&&wParam:指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。&&&&IParam:指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。&&&&返回值:返回值指定了消息处理结果,它与发送的消息有关。&&&&备注:使用函数CallWindowsProc可进行窗口子分类。通常来说,同一类的所有窗口共享一个窗口过程。子类是一个窗口或者相同类的一套窗口,在其消息被传送到该类的窗口过程之前,这些消息是由另一个窗口过程进行解释和处理的。&&&&SetWindowLoog函数通过改变与特定窗口相关的窗日过程,使系统调用新的窗口过程来创建子类,新的窗口过程替换了以前的窗口过程。应用程序必须通过调用CallWindowsProc来将新窗日过程没有处理的任何消息传送到以前的窗口过程中,这样就允许应用程序创建一系列窗口过程。
SetWindowLong() 函数
VB声明 Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 说明 在窗口结构中为指定的窗口设置信息 返回值 Long,指定数据的前一个值 参数表 参数 类型及说明 hwnd Long,欲为其取得信息的窗口的句柄 nIndex Long,请参考GetWindowLong函数的nIndex参数的说明 dwNewLong Long,由nIndex指定的窗口信息的新值
GetWindowLong ()函数
VB声明 Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long 说明 从指定窗口的结构中取得信息 返回值 Long,由nIndex决定。零表示出错。会设置GetLastError 参数表 参数 类型及说明 hwnd Long,欲为其获取信息的窗口的句柄 nIndex Long,欲取回的信息,可以是下述任何一个常数: GWL_EXSTYLE 扩展窗口样式 GWL_STYLE 窗口样式 GWL_WNDPROC 该窗口的窗口函数的地址 GWL_HINSTANCE 拥有窗口的实例的句柄 GWL_HWNDPARENT 该窗口之父的句柄。不要用SetWindowWord来改变这个值 GWL_ID 对话框中一个子窗口的标识符 GWL_USERDATA 含义由应用程序规定 DWL_DLGPROC 这个窗口的对话框函数地址 DWL_MSGRESULT 在对话框函数中处理的一条消息返回的值 DWL_USER 含义由应用程序规定
WindowProc是个窗口过程,其返回值是由系统处理的,应用程序中是不用也无法处理的。 Public & Sub & Hook(hWnd & As & Long) & & lngHWnd=hWnd & & lpPrevWndProc & = & SetWindowLong(lngHWnd, & & GWL_WNDPROC, & AddressOf & WindowProc) & End & Sub & 调用这个挂钩函数后,当有消息到窗口后,有系统调用WindowProc函数处理消息,由系统调用的函数返回值当然由系统处理
Function & WindowProc(ByVal & hw & As & Long, & ByVal & uMsg & As & Long, & _ & & & ByVal & wParam & As & Long, & ByVal & & & lParam & As & Long) & As & Long & & & Select & Case & uMsg & 检测鼠标击键消息,如果是单击右键 & & & Case & WM_RBUTTONUP & & & & & 什么事也不做 & & & & 或弹出自己定制的菜单 & & & Case & Else & & & WindowProc & = & CallWindowProc(lpPrevWndProc, & hw, & uMsg, & wParam, & lParam) & & & End & Select & End & Function&&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:998656次
积分:11606
积分:11606
排名:第1273名
原创:137篇
转载:327篇
评论:83条
(1)(2)(1)(1)(1)(1)(1)(1)(1)(2)(1)(1)(1)(9)(2)(1)(2)(4)(1)(1)(2)(2)(3)(4)(2)(1)(3)(1)(5)(3)(3)(4)(3)(7)(1)(2)(2)(5)(2)(4)(2)(6)(3)(6)(9)(3)(1)(10)(10)(6)(8)(4)(9)(7)(10)(5)(16)(23)(17)(5)(12)(9)(12)(3)(9)(13)(7)(13)(5)(59)(73)求解CallWindowProc函数,该如何解决(2) - VB当前位置:& &&&求解CallWindowProc函数,该如何解决求解CallWindowProc函数,该如何解决(2)&&网友分享于:&&浏览:122次这样 Form1 这个窗口收到 WM_CLOSE 消息后就会关闭了,当然,如果你的句柄是资源管理器或任务栏,他们也会关闭掉。但是消息单不是这么用的,上面只是说明一下消息机制里的参数设置而已。如果你想了解更多有关 Windows 消息的有关知识,可以搜索 SendMessage、PostMessage 等函数的使用方法,这是专门的 Windows 消息处理函数。 共&2&页:
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有图文中心:
下载中心:
您当前的位置: -&
-& 图文内容
作者佚名来源不详发布时间 12:06:40发布人xuedelphi
&函数功能:该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。如果指定的窗口是一个控制,则拷贝控制的文本。但是,GetWindowTeXt不能接收在其他应用程序中的控制文本。&&&&函数原型:Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount);&&&&参数:&&&&hWnd:带文本的窗口或控制的句柄。&&&&IpString:指向接收文本的缓冲区的指针。&&&&nMaxCount:指定要保存在缓冲区内的字符的最大个数,其中包含NULL字符。如果文本超过界限,它就被截断。&&&&返回值:如果函数成功,返回值是拷贝的字符串的字符个数,不包括中断的空字符;如果窗口无标题栏或文本,或标题栏为空,或窗口或控制的句柄无效,则返回值为零。若想获得更多错误信息,请调用GetLastError函数。&&&&函数不能返回在其他应用程序中的编辑控制的文本。&&&&备注:如果目标窗口属于当前进程,GetWindowText函数给指定的窗口或控制发送WM_GETTEXT消息。如果目标窗口属于其他进程,并且有一个窗口标题,则GetWindowTeXt返回窗口的标题文本,如果窗口无标题,则函数返回空字符串。&&&&速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows CE:1.0以上版本;头文件:Winuser.h;库文件:user32.lib:Unicode:在Windows NT上实现为Unicode和ANSI两种版本。
上一篇图文: |
下一篇图文:
(评论内容只代表网友观点,与本站立场无关!)CallWindowProc与setwindowlong 用法 - Steven Lei的博客 - CSDN博客
CallWindowProc与setwindowlong 用法
该函数CallWindowProc将消息信息传送给指定的窗口过程。&&&&函数原型:LRESULT CallWindowProc(WNDPROC lpPrevWndFunc,HWND hWnd.UINT Msg,WPARAM wParam,LPARAMIParam);&&&&参数:&&&&lpPrevWndFunc:参数主要是指向你要调用的函数句柄&&&&hWnd:指向接收消息的窗口过程的句柄。&&&&Msg:指定消息类型。&&&&wParam:指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。&&&&IParam:指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。&&&&返回值:返回值指定了消息处理结果,它与发送的消息有关。&&&&备注:使用函数CallWindowsProc可进行窗口子分类。通常来说,同一类的所有窗口共享一个窗口过程。子类是一个窗口或者相同类的一套窗口,在其消息被传送到该类的窗口过程之前,这些消息是由另一个窗口过程进行解释和处理的。&&&&SetWindowLoog函数通过改变与特定窗口相关的窗日过程,使系统调用新的窗口过程来创建子类,新的窗口过程替换了以前的窗口过程。应用程序必须通过调用CallWindowsProc来将新窗日过程没有处理的任何消息传送到以前的窗口过程中,这样就允许应用程序创建一系列窗口过程。
SetWindowLong() 函数
VB声明 Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 说明 在窗口结构中为指定的窗口设置信息 返回值 Long,指定数据的前一个值 参数表 参数 类型及说明 hwnd Long,欲为其取得信息的窗口的句柄 nIndex Long,请参考GetWindowLong函数的nIndex参数的说明 dwNewLong Long,由nIndex指定的窗口信息的新值
GetWindowLong ()函数
VB声明 Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long 说明 从指定窗口的结构中取得信息 返回值 Long,由nIndex决定。零表示出错。会设置GetLastError 参数表 参数 类型及说明 hwnd Long,欲为其获取信息的窗口的句柄 nIndex Long,欲取回的信息,可以是下述任何一个常数: GWL_EXSTYLE 扩展窗口样式 GWL_STYLE 窗口样式 GWL_WNDPROC 该窗口的窗口函数的地址 GWL_HINSTANCE 拥有窗口的实例的句柄 GWL_HWNDPARENT 该窗口之父的句柄。不要用SetWindowWord来改变这个值 GWL_ID 对话框中一个子窗口的标识符 GWL_USERDATA 含义由应用程序规定 DWL_DLGPROC 这个窗口的对话框函数地址 DWL_MSGRESULT 在对话框函数中处理的一条消息返回的值 DWL_USER 含义由应用程序规定
WindowProc是个窗口过程,其返回值是由系统处理的,应用程序中是不用也无法处理的。 Public & Sub & Hook(hWnd & As & Long) & & lngHWnd=hWnd & & lpPrevWndProc & = & SetWindowLong(lngHWnd, & & GWL_WNDPROC, & AddressOf & WindowProc) & End & Sub & 调用这个挂钩函数后,当有消息到窗口后,有系统调用WindowProc函数处理消息,由系统调用的函数返回值当然由系统处理
Function & WindowProc(ByVal & hw & As & Long, & ByVal & uMsg & As & Long, & _ & & & ByVal & wParam & As & Long, & ByVal & & & lParam & As & Long) & As & Long & & & Select & Case & uMsg & 检测鼠标击键消息,如果是单击右键 & & & Case & WM_RBUTTONUP & & & & & 什么事也不做 & & & & 或弹出自己定制的菜单 & & & Case & Else & & & WindowProc & = & CallWindowProc(lpPrevWndProc, & hw, & uMsg, & wParam, & lParam) & & & End & Select & End & Function&&
我的热门文章
即使是一小步也想与你分享

我要回帖

更多关于 函数返回值为引用 的文章

 

随机推荐