Chapter 3 Events and the Carbon Event Manager
1 Events
Carbon Event Manager所支持的事件有两个属性:
1. Event Class,表示事件的类别,如鼠标消息:kEventClassMouse
2. Event Kind,事件的具体类型,如鼠标按键按下消息:kEventMouseDown
kEventClassMouse和kEventMouseDown的定义如下:
KEventClassMouse = FOUR_CHAR_CODE('mous'); KEventMouseDown = 1; |
一般情况下,使用EventTypeSpec结构来指定Event Class和Event Kind:
struct EventTypeSpec { UInt32 eventClass; UInt32 eventKind; }; |
比如,命令事件(类似WM_COMMAND)可以这么定义:
EventTypeSpec eventType = { kEventClassCommand,kEventProcessCommand }; |
2 Installing Events
调用InstallEventHandler函数“安装”事件处理函数,接收从Event Target发来的事件:
OSStatus InstallEventHandler( EventTargetRef target, EventHandlerUPP handlerProc, |