易语言 类 组件 事件!~

2024-11-29 02:42:30
推荐回答(1个)
回答1:

.版本 2
.支持库 spec
.程序集 窗口程序集1
.程序集变量 类, 类1, , , 自定义类

.子程序 __启动窗口_创建完毕

类.挂接事件 (到整数 (&回调的子程序))

.子程序 回调的子程序, 整数型
.参数 a, , , 此参数可对应是“文本型或整数型”
.参数 b
.参数 c
.参数 d
.局部变量 e, 文本型

' 可以有四个参数或无参数,如果少一个或多一个可能会出错!
' 参数类型可根据“CallWindowProc”的参数决定,整数型为传递指针“传址勾上”
信息框 (指针到文本 (a), 0, )
e = “返回的数据”
返回 (取变量数据地址 (e))

.子程序 _按钮1_被单击
.局部变量 a, 整数型

a = 类.产生了事件 ()
信息框 (指针到文本 (a), 0, )
' 至于事件的发生,你自己根据情况而定,我无法帮你、

以上是“程序集”代码===========================以下是自定义“类1”中的代码

.版本 2
.程序集 类1
.程序集变量 执行指针, 整数型

.子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用

.子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用

.子程序 挂接事件, 逻辑型, 公开
.参数 子程序指针, 整数型

' 参数可以是“子程序指针”或“整数型”,个人比较喜欢“整数型”!
执行指针 = 子程序指针
返回 (执行指针 ≠ 0)

.子程序 产生了事件, 整数型, 公开, 可以在回调子程序中反回指针型数据!
.如果真 (执行指针 ≠ 0)
返回 (CallWindowProc (执行指针, “传递过去的文本参数”, 0, 0, 0))
' 一般高手喜欢用“置入代码”执行指针,我不是高手也不喜欢用“置入代码”所以用API的做
.如果真结束
返回 (0)

===============================API

.版本 2
.DLL命令 CallWindowProc, 整数型, , "CallWindowProcA"
.参数 lpPrevWndFunc, 整数型
.参数 hWnd, 文本型
.参数 Msg, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型