当前位置: 代码迷 >> Brew >> 如何让container内的widget捕捉到消息
  详细解决方案

如何让container内的widget捕捉到消息

热度:5244   发布时间:2013-02-26 00:00:00.0
怎么让container内的widget捕捉到消息
在我的brew工程下一个container内插入一个widget,当用户点击这个widget时,首先是container捕捉这个点击事件,这时只需要把这个事件交由系统消息处理函数HANDLERDESC_CALL(),消息就会投递给widget,此时widget的消息处理函数就可以处理这个消息,但如果container是支持滚动的(用ViewportWidget去装饰它),此时在它内部插入一个普通的container,这个普通的contianer内还有widget,此时怎么点击,它内部的widget都无法捕捉到消息,有没有遇到这种情况,是怎么处理的?
------解决方案--------------------------------------------------------
当触摸事件下发到viewportwidget时,将会有两种处理方式:第一种:flag 包含VWF_CONSUMETOUCHEVENTS时,执行 WidgetBase_HandleTouchEvents(WBASE(me), evt, wParam, dwParam),即直接传给ViewportTC处理;不然,就会执行第二种方式:传给viewportwidget所修饰的child widget处理:IWidget_HandlePenEvent(me->base.pChild, evt, wParam, dwParam,。。);  这两种方式都能将触摸事件传递给child widget处理,只是第一种方式,可以给开发人员都一些自定义操作。  
  相关解决方案