以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  关于postmessage(57602)关闭框架顺序问题  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=148754)

--  作者:lyh27557496
--  发布时间:2017/3/7 13:54:31
--  关于postmessage(57602)关闭框架顺序问题
如下代码,有三个框架f1、f2、f3,我想统计所有框架里面的公式的一些数据,for循环逐个激活框架,循环里面处理完一个框架后再关闭该框架。但是每次运行宏,都是逐一激活框架,处理完所有框架的计算后,最后才逐个关闭框架的,跟我预想的不一样。

frame = Array("f1", "f2", "f3")
N = UBound(frame) + 1
for i = 0 to N - 1
    set F = application.activateframe(frame(i))
    ...
    ...
    application.activateframe(frame(i))
    application.postmessage(57602)
next

--  作者:王锋
--  发布时间:2017/3/7 13:57:04
--  

试试用sendmessage


--  作者:lyh27557496
--  发布时间:2017/3/7 13:59:54
--  
sendmessage就是正常的。请问这两个有什么不同?为什么用postmessage不行?
--  作者:王锋
--  发布时间:2017/3/7 14:04:21
--  

SendMessage    发送系统消息,直到消息执行完毕后才返回。消息参数一般是系统的菜单命令或者一些系统命令。

PostMessage    发送系统消息,发送完毕后直接返回。消息参数一般是系统的菜单命令或者一些系统命令。


--  作者:lyh27557496
--  发布时间:2017/3/7 14:16:07
--  
也就是PostMessage发出后,不会等你的执行响应,而SendMessage会等到你的执行响应?
--  作者:王锋
--  发布时间:2017/3/7 14:28:17
--  
是的,因为还没等框架彻底关闭时你再打开其他框架,会导致打开失败
--  作者:lyh27557496
--  发布时间:2017/3/7 14:46:21
--  
好的,多谢。