搜索
aardio官方社区 门户 查看主题

SendMessage疑问咨询

发布者: yootou | 发布时间: 2017-12-8 11:59| 查看数: 370| 评论数: 5|帖子模式

mainForm.wndproc = function(hwnd,message,wParam,lParam){
        select(message){
                case 0xAFFE/*打开收银台*/ {
                        win.msgbox("收到通知");
                        platForm=mainForm.loadForm("/forms/plat.aardio",mainForm);
                        loginForm.show(false);
                }
        }
}

我在另一个窗口使用 ::SendMessage(..mainForm.hwnd,0xAFFE);

mainForm这边接收不到。。。不清楚是哪个环节弄错了。。以前也是这样写的。。。

最新评论

Jacen.He 发表于 2017-12-8 12:07:46
在论坛提问,发代码要能重现问题
Jacen.He 发表于 2017-12-8 12:15:24
使用自定义消息注意看帮助文档

0 ~ WM_USER–1
操作系统保留的消息。

WM_USER ~ 0x7FFF
私有窗口级别的自定义消息。

WM_APP ~ 0xBFFF
应用程序级别的自定义消息。其中0xAAAA 至 0xBFFF 为aardio标准库保留值请勿使用。

0xC000 ~ 0xFFFF
::RegisterWindowMessage函数定义一个新的窗口消息,该消息保证在整个系统范围内是唯一的。

0xFFFF ~
操作系统保留的消息。

yootou 发表于 2017-12-8 12:33:25
找到原因了。。。谢谢哈。。
Jacen.He 发表于 2017-12-8 12:37:23
yootou 发表于 2017-12-8 12:33
找到原因了。。。谢谢哈。。

用自定义消息,代码可读性不好,消息ID容易相互冲突。
如果是跨线程可以用 thread.command,同线程可以用 publish

实际上 mainForm是一个全局变量,也可以传到线程里使用。
你用这种写法,就不如给 mainForm增加一个函数, 例如:
mainForm.test = function(){
   
}
在其他地方,直接调用 mainForm.text() 就可以了
yootou 发表于 2017-12-8 12:47:33
嗯嗯,谢谢哈。。先前我把wndproc的方法放在loadForm后边去了,所以loadForm打开的窗口那边,没有接收到对mainForm.wndproc定义的内容。。。。

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-4-23 21:30 , Processed in 0.078147 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表