Bolt界面引擎官方论坛

 找回密码
 立即注册
搜索
查看: 3622|回复: 0

[.net]4.9 官方QQ群话题整理 重要!在.net里使用bolt要注意的!

[复制链接]
发表于 2013-4-9 11:18:48 | 显示全部楼层 |阅读模式
ass="pstatus"> 本帖最后由 waterflier 于 2013-4-9 11:20 编辑


@我爱你,
你不能使用Application.Run

幻灰龙Async(1974663444) 17:07:41

那个会屏蔽掉Enter、Left、Right、Up、Down键的消息
幻灰龙Async(1974663444) 17:08:25

早期就给waterflier他们报告过了,不过他们懒得去更新c#的demo
waterflier(24986022) 17:15:35

不用Applcation.Run用啥?
幻灰龙Async(1974663444) 17:18:24

自己写消息循环
waterflier(24986022) 17:18:55

- - .net这是为啥啊
幻灰龙Async(1974663444) 17:19:03

。。。
幻灰龙Async(1974663444) 17:19:08

你这是在用BOLT

幻灰龙Async(1974663444) 17:19:11

又不是在用winform
幻灰龙Async(1974663444) 17:19:31

Application.Run是专门为Winform和WPF设计的。
幻灰龙Async(1974663444) 17:19:55

消息循环肯定要自己写,否则中间被乱搞的消息很多
幻灰龙Async(1974663444) 17:20:17

你们用WTL也应该是自己手写的消息循环吧
李亚星(277075527) 17:21:15

wtl消息循环就是直接win32的 没有自己框架的东西
幻灰龙Async(1974663444) 17:21:25

class BOLT{
public void Run(){
MSG msg = new MSG();
while (GetMessage(ref msg, IntPtr.Zero, 0, 0)) {
                if (msg.message == WM_QUIT)
                    return;
                TranslateMessage(ref msg);
                DispatchMessage(ref msg);
}
}



幻灰龙Async(1974663444) 17:21:36

恩,所以干净的消息循环就可以了。自己写一个很简单的。
李亚星(277075527) 17:21:39

你如果替代了Application.Run  要知道里面可能会有什么操作
幻灰龙Async(1974663444) 17:21:45

不需要知道啊

幻灰龙Async(1974663444) 17:22:26

但是用bolt的话,只要消息循环就可以了
幻灰龙Async(1974663444) 17:22:57

Application.Run里的逻辑非常罗嗦,我跟踪过,看不下去了,才直接自己写了个消息循环了事。。
幻灰龙Async(1974663444) 17:23:27

Application.Run之后,bolt的Edit就没法用了
幻灰龙Async(1974663444) 17:23:41

方向键的消息也被拦截掉
幻灰龙Async(1974663444) 17:24:45

青青三叶草(277075527)  17:22:13
一般框架里面的run都不止消息循环

这个是没错,但Application.Run是为Winform而写的,并不是为BOLT。。

李亚星(277075527) 17:27:40

你确保你们不会自己用到任何相关框架的东西就ok
waterflier(24986022) 17:28:41

不过你们用了bolt也不需要.net提供的界面了,应该无所谓了
幻灰龙Async(1974663444) 17:29:08

恩,就是用winform做后台窗口可能会有点影响
幻灰龙Async(1974663444) 17:29:21

反正我目前为止没发现什么问题。
waterflier(24986022) 17:30:34

.net自己实习的run函数,拦截那几个消息有什么理由么?这个就需要熟悉.net的同学告知了
李亚星(277075527) 17:31:56

不一定是拦截 可能使用了框架内的分发方法
幻灰龙Async(1974663444) 17:41:40

当时就挖了2个小时放弃了,没去挖到底哪个地方弄得。


结论:官方SDK里的.net demo里用Application.Run跑消息循环会导致一些不正常,具体原因未知。解决方法是自己写消息循环!

官方SDK会在下个版本修正这个问题





小黑屋|手机版|迅雷Bolt界面引擎开发者社区 ( 10240715

GMT+8, 2017-6-26 06:21 , Processed in 0.066147 second(s), 19 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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