关于几个api函数的迷惑 还有 callback这个是什么意思 ? 怎么用的? 求救! Call back 是在C++中使用的,意思是说这个函数只能由外部进程调用,不能由你自己的进程调用。SetWindowLong 和GetWindowLong是用来设置/返回一个窗口的信息。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 窗口消息是什么 可以用来干什么?callback我还是没有听懂啊 SetWindowLong的功能是:在窗口结构中为指定的窗口设置信息它的三个参数分别是hwnd ----------- Long,欲为其取得信息的窗口的句柄nIndex --------- Long,见GetWindowLong函数的nIndex参数的说明dwNewLong ------ Long,由nIndex指定的窗口信息的新值返回值为long,指定数据的前一个值.GetWindowLong的功能是从指定窗口的结构中取得信息返回值:Long,由nIndex决定。零表示出错。会设置GetLastErrorhwnd ----------- Long,欲为其获取信息的窗口的句柄 nIndex --------- Long,欲取回的信息,可以是下述任何一个常数: GWL_EXSTYLE 扩展窗口样式 GWL_STYLE 窗口样式 GWL_WNDPROC 该窗口的窗口函数的地址 GWL_HINSTANCE 拥有窗口的实例的句柄 GWL_HWNDPARENT 该窗口之父的句柄。不要用SetWindowWord来改变这个值 GWL_ID 对话框中一个子窗口的标识符 GWL_USERDATA 含义由应用程序规定 DWL_DLGPROC 这个窗口的对话框函数地址 DWL_MSGRESULT 在对话框函数中处理的一条消息返回的值 DWL_USER 含义由应用程序规定如果要使用,先用getwindowlong获取窗口的信息,再用SetWindowLong设置就可以了. 没有 帮忙给我解释一下吧addressof 到底是返回什么setwindowslong 返回值又是干什么用的 SetWindowLong的功能是:在窗口结构中为指定的窗口设置信息它的三个参数分别是hwnd ----------- Long,欲为其取得信息的窗口的句柄nIndex --------- Long,见GetWindowLong函数的nIndex参数的说明dwNewLong ------ Long,由nIndex指定的窗口信息的新值返回值为long,指定数据的前一个值.GetWindowLong的功能是从指定窗口的结构中取得信息返回值:Long,由nIndex决定。零表示出错。会设置GetLastErrorhwnd ----------- Long,欲为其获取信息的窗口的句柄 nIndex --------- Long,欲取回的信息,可以是下述任何一个常数: GWL_EXSTYLE 扩展窗口样式 GWL_STYLE 窗口样式 GWL_WNDPROC 该窗口的窗口函数的地址 GWL_HINSTANCE 拥有窗口的实例的句柄 GWL_HWNDPARENT 该窗口之父的句柄。不要用SetWindowWord来改变这个值 GWL_ID 对话框中一个子窗口的标识符 GWL_USERDATA 含义由应用程序规定 DWL_DLGPROC 这个窗口的对话框函数地址 DWL_MSGRESULT 在对话框函数中处理的一条消息返回的值 DWL_USER 含义由应用程序规定如果要使用,先用getwindowlong获取窗口的信息,再用SetWindowLong设置就可以了. 那callback 在vb里是什么意思?哪个 addressof 是怎么用的 AddressOf 运算符 一个一元运算符,它将其后面的过程的地址传递给一个 API 过程,该 API 过程在参数表对应位置中需要一个函数指针。语法AddressOf procedurename必需的 procedurename 指定要传递的地址是哪一个过程的地址。这个过程必须是发出调用命令的工程中的一个标准模块模块里的一个过程。说明当一个过程的名称出现在一个参数列表中时,通常该过程已经被计算,并且该过程返回值的地址也会被传递。AddressOf 允许该过程的地址被传递给动态链接库 (DLL) 中的一个 Windows API 函数,而不是传递该过程的返回值。API 函数然后就可以使用这个地址来调用相应的 Basic 过程,这个过程就是我们所知道的回调。AddressOf 运算符只出现在对 API 过程的调用中。尽管可以使用 AddressOf 运算符在 Basic 过程之间传递过程指针,却不能通过这样的一个指针从 Basic 内部调用一个函数。这就是说,例如,一个使用 Basic 编写的类 不能使用这样的一个指针来回调自己的控制器。当使用 AddressOf 运算符在 Basic 内的过程之间传递一个过程的指针时,被调用过程的参数类型必须定义为 As Long。警告 如果不能完全理解函数回调的概念,则使用 AddressOf 运算符可能会导致意想不到的结果。必须理解回调的 Basic 部份是如何工作的,以及接受所传递的函数地址的 DLL 的代码是如何工作的。调试这样的交互操作是非常困难的,因为该程序和开发环境运行在相同的进程中。在某些情况下,系统的调试也许是不可能的。注意 可以使用 Microsoft Visual C++ (或者类似的工具)编译的 DLLs 来创建自己的回调函数原型。要使用 AddressOf 运算符来工作,您的原型必需使用 __stdcall 调用约定。缺省的调用约定 (__cdecl) 不能与 AddressOf 运算符一起工作。因为一个回调的调用程序不在用户自己的程序中,所以很重要的一点是要保证回调过程中的错误不被回传到调用者。可以通过把 On Error Resume Next 语句放置于回调过程的起始处来达到这个要求。 能否通俗些就是在api中调用自己编写的函数来代替以有的函数?和一般的调用函数的方法有什么不同 下面的话是什么意思?尽管可以使用 AddressOf 运算符在 Basic 过程之间传递过程指针,却不能通过这样的一个指针从 Basic 内部调用一个函数。这就是说,例如,一个使用 Basic 编写的类 不能使用这样的一个指针来回调自己的控制器。当使用 AddressOf 运算符在 Basic 内的过程之间传递一个过程的指针时,被调用过程的参数类型必须定义为 As Long。楼上的 basic指的是什么? 才上传了一篇文章, 里面涉及到回调:http://www.csdn.net/develop/read_article.asp?id=13486 【函数】SetWindowLong【操作系统】Win9X:YesWinNT:Yes【声明】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【操作系统】Win9X:YesWinNT:Yes【声明】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 含义由应用程序规定 AddressOf 运算符 一个一元运算符,它将其后面的过程的地址传递给一个 API 过程,该 API 过程在参数表对应位置中需要一个函数指针。语法AddressOf procedurename必需的 procedurename 指定要传递的地址是哪一个过程的地址。这个过程必须是发出调用命令的工程中的一个标准模块模块里的一个过程。说明当一个过程的名称出现在一个参数列表中时,通常该过程已经被计算,并且该过程返回值的地址也会被传递。AddressOf 允许该过程的地址被传递给动态链接库 (DLL) 中的一个 Windows API 函数,而不是传递该过程的返回值。API 函数然后就可以使用这个地址来调用相应的 Basic 过程,这个过程就是我们所知道的回调。AddressOf 运算符只出现在对 API 过程的调用中。尽管可以使用 AddressOf 运算符在 Basic 过程之间传递过程指针,却不能通过这样的一个指针从 Basic 内部调用一个函数。这就是说,例如,一个使用 Basic 编写的类 不能使用这样的一个指针来回调自己的控制器。当使用 AddressOf 运算符在 Basic 内的过程之间传递一个过程的指针时,被调用过程的参数类型必须定义为 As Long。警告 如果不能完全理解函数回调的概念,则使用 AddressOf 运算符可能会导致意想不到的结果。必须理解回调的 Basic 部份是如何工作的,以及接受所传递的函数地址的 DLL 的代码是如何工作的。调试这样的交互操作是非常困难的,因为该程序和开发环境运行在相同的进程中。在某些情况下,系统的调试也许是不可能的。注意 可以使用 Microsoft Visual C++ (或者类似的工具)编译的 DLLs 来创建自己的回调函数原型。要使用 AddressOf 运算符来工作,您的原型必需使用 __stdcall 调用约定。缺省的调用约定 (__cdecl) 不能与 AddressOf 运算符一起工作。因为一个回调的调用程序不在用户自己的程序中,所以很重要的一点是要保证回调过程中的错误不被回传到调用者。可以通过把 On Error Resume Next 语句放置于回调过程的起始处来达到这个要求。 callback函数:回调函数,其实就是一个用户自定义的函数,只不过这个函数一般不是由用户程序调用的,而是由windows系统调用的,这样可以让用户扩充或改变一些系统的行为。 AddressOf操作符返回一个函数的地址,vb中提供这个操作符的目的是为了让用户能够在vb中使用windows系统的API,因为windows的一些api的参数要求提供一个函数地址 请问各位高手vb如何将查询结果输入水晶报表,然后实现打印? 关于“拖拉时显示窗口内容” [押宝游戏][有大庄友情赞助2w分,压得越多,赚得越多]上证A股从6000点一路跌到现在,最后几个交易日,来一次押宝游戏 关于数据库的几个问题!急求? 有什么办法可以让软件随系统重新启动? 紧急! 如何随时显示更新的的数据 请问vb中如何截获鼠标键盘消息 ado数据控件与access数据库连接问题 那种vb的安装制作程序支持添加整个文件夹? 。。ADO的问题。。 难道真的没人能解决这个问题吗?
callback我还是没有听懂啊
它的三个参数分别是
hwnd ----------- Long,欲为其取得信息的窗口的句柄
nIndex --------- Long,见GetWindowLong函数的nIndex参数的说明
dwNewLong ------ Long,由nIndex指定的窗口信息的新值
返回值为long,指定数据的前一个值.
GetWindowLong的功能是从指定窗口的结构中取得信息
返回值:Long,由nIndex决定。零表示出错。会设置GetLastErrorhwnd ----------- Long,欲为其获取信息的窗口的句柄 nIndex --------- Long,欲取回的信息,可以是下述任何一个常数:
GWL_EXSTYLE 扩展窗口样式
GWL_STYLE 窗口样式
GWL_WNDPROC 该窗口的窗口函数的地址
GWL_HINSTANCE 拥有窗口的实例的句柄
GWL_HWNDPARENT 该窗口之父的句柄。不要用SetWindowWord来改变这个值
GWL_ID 对话框中一个子窗口的标识符
GWL_USERDATA 含义由应用程序规定
DWL_DLGPROC 这个窗口的对话框函数地址
DWL_MSGRESULT 在对话框函数中处理的一条消息返回的值
DWL_USER 含义由应用程序规定
如果要使用,先用getwindowlong获取窗口的信息,再用SetWindowLong设置就可以了.
它的三个参数分别是
hwnd ----------- Long,欲为其取得信息的窗口的句柄
nIndex --------- Long,见GetWindowLong函数的nIndex参数的说明
dwNewLong ------ Long,由nIndex指定的窗口信息的新值
返回值为long,指定数据的前一个值.
GetWindowLong的功能是从指定窗口的结构中取得信息
返回值:Long,由nIndex决定。零表示出错。会设置GetLastErrorhwnd ----------- Long,欲为其获取信息的窗口的句柄 nIndex --------- Long,欲取回的信息,可以是下述任何一个常数:
GWL_EXSTYLE 扩展窗口样式
GWL_STYLE 窗口样式
GWL_WNDPROC 该窗口的窗口函数的地址
GWL_HINSTANCE 拥有窗口的实例的句柄
GWL_HWNDPARENT 该窗口之父的句柄。不要用SetWindowWord来改变这个值
GWL_ID 对话框中一个子窗口的标识符
GWL_USERDATA 含义由应用程序规定
DWL_DLGPROC 这个窗口的对话框函数地址
DWL_MSGRESULT 在对话框函数中处理的一条消息返回的值
DWL_USER 含义由应用程序规定
如果要使用,先用getwindowlong获取窗口的信息,再用SetWindowLong设置就可以了.
AddressOf 运算符
一个一元运算符,它将其后面的过程的地址传递给一个 API 过程,该 API 过程在参数表对应位置中需要一个函数指针。语法AddressOf procedurename必需的 procedurename 指定要传递的地址是哪一个过程的地址。这个过程必须是发出调用命令的工程中的一个标准模块模块里的一个过程。说明当一个过程的名称出现在一个参数列表中时,通常该过程已经被计算,并且该过程返回值的地址也会被传递。AddressOf 允许该过程的地址被传递给动态链接库 (DLL) 中的一个 Windows API 函数,而不是传递该过程的返回值。API 函数然后就可以使用这个地址来调用相应的 Basic 过程,这个过程就是我们所知道的回调。AddressOf 运算符只出现在对 API 过程的调用中。尽管可以使用 AddressOf 运算符在 Basic 过程之间传递过程指针,却不能通过这样的一个指针从 Basic 内部调用一个函数。这就是说,例如,一个使用 Basic 编写的类 不能使用这样的一个指针来回调自己的控制器。当使用 AddressOf 运算符在 Basic 内的过程之间传递一个过程的指针时,被调用过程的参数类型必须定义为 As Long。警告 如果不能完全理解函数回调的概念,则使用 AddressOf 运算符可能会导致意想不到的结果。必须理解回调的 Basic 部份是如何工作的,以及接受所传递的函数地址的 DLL 的代码是如何工作的。调试这样的交互操作是非常困难的,因为该程序和开发环境运行在相同的进程中。在某些情况下,系统的调试也许是不可能的。注意 可以使用 Microsoft Visual C++ (或者类似的工具)编译的 DLLs 来创建自己的回调函数原型。要使用 AddressOf 运算符来工作,您的原型必需使用 __stdcall 调用约定。缺省的调用约定 (__cdecl) 不能与 AddressOf 运算符一起工作。因为一个回调的调用程序不在用户自己的程序中,所以很重要的一点是要保证回调过程中的错误不被回传到调用者。可以通过把 On Error Resume Next 语句放置于回调过程的起始处来达到这个要求。
http://www.csdn.net/develop/read_article.asp?id=13486
SetWindowLong【操作系统】
Win9X:Yes
WinNT:Yes【声明】
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【操作系统】
Win9X:Yes
WinNT:Yes【声明】
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
含义由应用程序规定
AddressOf 运算符
一个一元运算符,它将其后面的过程的地址传递给一个 API 过程,该 API 过程在参数表对应位置中需要一个函数指针。语法AddressOf procedurename必需的 procedurename 指定要传递的地址是哪一个过程的地址。这个过程必须是发出调用命令的工程中的一个标准模块模块里的一个过程。说明当一个过程的名称出现在一个参数列表中时,通常该过程已经被计算,并且该过程返回值的地址也会被传递。AddressOf 允许该过程的地址被传递给动态链接库 (DLL) 中的一个 Windows API 函数,而不是传递该过程的返回值。API 函数然后就可以使用这个地址来调用相应的 Basic 过程,这个过程就是我们所知道的回调。AddressOf 运算符只出现在对 API 过程的调用中。尽管可以使用 AddressOf 运算符在 Basic 过程之间传递过程指针,却不能通过这样的一个指针从 Basic 内部调用一个函数。这就是说,例如,一个使用 Basic 编写的类 不能使用这样的一个指针来回调自己的控制器。当使用 AddressOf 运算符在 Basic 内的过程之间传递一个过程的指针时,被调用过程的参数类型必须定义为 As Long。警告 如果不能完全理解函数回调的概念,则使用 AddressOf 运算符可能会导致意想不到的结果。必须理解回调的 Basic 部份是如何工作的,以及接受所传递的函数地址的 DLL 的代码是如何工作的。调试这样的交互操作是非常困难的,因为该程序和开发环境运行在相同的进程中。在某些情况下,系统的调试也许是不可能的。注意 可以使用 Microsoft Visual C++ (或者类似的工具)编译的 DLLs 来创建自己的回调函数原型。要使用 AddressOf 运算符来工作,您的原型必需使用 __stdcall 调用约定。缺省的调用约定 (__cdecl) 不能与 AddressOf 运算符一起工作。因为一个回调的调用程序不在用户自己的程序中,所以很重要的一点是要保证回调过程中的错误不被回传到调用者。可以通过把 On Error Resume Next 语句放置于回调过程的起始处来达到这个要求。