通过视图解释用户输入
视图的其他成员函数会处理并解释所有用户输入。 通常会在视图类中定义消息处理程序成员函数来处理以下内容:
这些消息处理程序成员函数将以下操作解释为数据输入、选择或编辑,包括将数据移入和移出剪贴板:
鼠标移动和单击、拖动和双击
击键
菜单命令
视图处理哪些 Windows 消息由应用程序需求决定。
消息处理和映射主题介绍了如何将菜单项和其他用户界面对象分配给命令,以及如何将命令绑定到处理程序函数。 消息处理和映射主题还介绍了 MFC 如何路由命令并将标准 Windows 消息发送到包含其处理程序的对象。
例如,应用程序可能需要在视图中实现直接鼠标绘图。 Scribble 示例分别演示了如何处理WM_LBUTTONDOWN、WM_MOUSEMOVE 和 WM_LBUTTONUP 消息来开始、继续和结束线段的绘制。 另一方面,有时可能需要将视图中的鼠标单击解释为一个选择。 视图的 OnLButtonDown
处理程序函数将确定用户是进行绘制还是进行选择。 如果是选择,处理程序会确定单击是否位于视图中某个对象的边界内;如果是,则更改显示来将对象显示为“已选择”。
视图还可能会处理某些菜单命令,例如,“编辑”菜单中使用剪贴板剪切、复制、粘贴或删除所选数据的命令。 此类处理程序会调用 CWnd
类的一些与剪贴板相关的成员函数,以便向剪贴板或从剪贴板传输所选数据项。