易语言替换窗口回调处理自定义消息

来源:赵克立 分类: 其它 标签:易语言易语言发布时间:2018-10-30 19:22:41浏览:118
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
温馨提示:
技术类文章有它的时效性,请留意文章更新时间以及软件的版本
更新时间:
2018-10-30 19:27:01

使用易语言写多线程的程序时,需要实时的显示日志,而多线程中操作界面时会异常。于是就想着用自定义一个窗口消息来实现显示日志到指定控件,实现这个功能就需要用到三个api如下引入dll

.版本 2
.DLL命令 执行原窗口回调, 整数型, , "CallWindowProcA"
    .参数 窗口程序程序指针, 子程序指针
    .参数 窗口句柄, 整数型
    .参数 消息, 整数型
    .参数 参数1, 整数型
    .参数 参数2, 整数型
.DLL命令 发送文本消息, 整数型, , "SendMessageA"
    .参数 hWnd, 整数型
    .参数 type, 整数型
    .参数 l, 整数型
    .参数 p, 文本型
.DLL命令 替换窗口回调, 子程序指针, , "SetWindowLongA"
    .参数 窗口句柄, 整数型
    .参数 特征索引, 整数型
    .参数 新特征, 子程序指针

image.png

窗口创建完毕后要用新的回调函数来替换旧的回调函数,旧的回调函数要保存到全局,因为后面还要使用,如下

旧窗口回调函数 = 替换窗口回调 (取窗口句柄 (), -4, &新窗口回调函数)


image.png

新的窗口回调函数格式是固定的如下

image.png

.版本 2
.子程序 新窗口回调函数, 整数型
.参数 窗口句柄_, 整数型
.参数 消息, 整数型
.参数 参数1, 整数型
.参数 参数2, 整数型
.局部变量 日志, 文本型
.如果真 (消息 = 9999)
    日志 = 指针到文本 (参数2)
    子_加入记录log (日志)
.如果真结束
' 下面调用原来的回调来处理其它消息,去掉就假死
返回 (执行原窗口回调 (旧窗口回调函数, 窗口句柄_, 消息, 参数1, 参数2))

上面自定义啦一个消息值为  9999  发送消息的方法如下

发送文本消息 (取窗口句柄 (), 9999, 0, “一个值 ”)

然后在回调里就可以根据这个消息来来取出相应的文本啦


微信号:kelicom QQ群:215861553 紧急求助须知
留下一点心意, :)
点击更换验证码
留言