当控件激活时,事件应该传递到激活的控件,使控件进行自我更新,又叫做事件代理。例如,如果菜单控件处于激活状态,应该将事件传递到 IMENUCTL_HandleEvent();如果文本控件处于激活上,应传递到ITEXTCTL_HandleEvent(),然后控件就会采取相应的操作。以菜单控件来说,它就会改变被选项目,重新绘制菜单。
     正如事件处理函数将 TRUEFALSE返回AEE执行环境那样,控件返回TRUEFALSE则表示它们处理的事件。每个控件类型只会处理必要的事件。标准菜单控件只处理“上”、“下”和其他部分关键事件,而软键菜单控件则处理“左“、“右”和其他关键事件。如果一个控件从发放的事件中返回的是TRUE,应用就可以早一点从事件处理函数中退出来,但还可以执行额外的处理。如果一个控件从发放的事件中返回的是FALSE,应用一般应该继续处理该事件。如果该控件接收的是从事件处理器返回的FALSEBREW就要执行默认的处理。
       当用户按下“选择”键进行选择时,菜单控件使用 EVT_COMMAND来通知应用。在这种情况下,一个来自“选择”键下放的EVT_KEY按键事件就由菜单控件处理。此外,对于菜单控件任何视图更新,菜单控件将EVT_COMMAND事件发回给应用。事实上,所有控件类型都能提供代理机制
        事件的分发代理机制非常灵活,你可以在消息循环中按照你的需要自由处理。
BREW 下的消息处理机制与Windows 下的消息处理机制的区别在于:BREW 的体系结构采用了COM 方式,即具有面向对象的类层次结构,从而其具体的事件处理机制也是作为各个接口外露的接口函数的形式被运用。一个应用本质上来说就是一个实例化的IAPPLET 类,所以这样就统一了所有在应用中运用的事件处理机制都是各个接口外露接口函数的说法。具体而言,这些事件处理器还是有区别的,主要是IAPPLET_HandleEvent 和其他接口的HandleEvent 的区别。