在Windows平台上,通过系统的消息循环以及注册窗口过程,VTK将操作系统的鼠标、键盘和定时器消息路由到VTK的交互框架,再通过VTK自定义的事件转换机制,转换为VTK事件,实现平台无关性。
主要步骤:
1、注册自定义窗口过程,并启动系统消息循环;
2、通过系统消息循环获取消息;
3、分发给消息响应函数;
4、消息响应函数将Windows消息转换为VTK平台消息;
5、基于观察者模式的实现,调用vtkSubjectHelper将VTK消息分发给观察者vtkInteractorStyle;
6、观察者将消息分发给消息响应函数或者其自类的消息响应函数处理。
以Windows消息WM_KEYDOWN的路由过程为例,调用时序如下图