文章: 新文章 图形界面 II: 设置库的事件处理函数 (第三章)

 

新文章 图形界面 II: 设置库的事件处理函数 (第三章)已发布:

之前的文章中包含了用于创建主菜单构成部分类的实现. 现在, 是时候在主基础类和创建控件的类中关注事件处理函数了. 我们将特别关注根据鼠标光标的位置来管理图表的状态.

私有元素数组

让我们做一个小实验. 当鼠标光标位于表单区域之外时, 使用鼠标左键点击一个上下文菜单项. 我们将会看到, 图表的滚动没有被禁用并且在鼠标掠过控件时还在起作用. 这是一个功能性错误, 不应该存在. 我们将会处理这个问题, 这样不论鼠标在哪个控件之上时, 图表的滚动和交易水平移动的模式在那时是被禁止的. 

首先, 让我们把对元件焦点的跟踪 增加到上下文菜单处理函数中, 如以下代码所示. 如果上下文菜单是隐藏的, 那么就没有必要继续了. 使用这种方法可以节约时间.

事件处理函数的预先测试

在所有修改完成之后, 编译所有文件并把程序载入到图表上测试. 现在, 当在表单中点击了一个独立的菜单项时, 它的上下文菜单如之前被隐藏, 将会出现, 如果已经打开就会隐藏. 另外, 当一个上下文菜单是开启的, 那么菜单项背景的颜色将是固定的, 如果鼠标从它的区域中离开, 背景色不会再次改变, 如以下屏幕截图所示. 

图 1. 显示和隐藏上下文菜单的测试.

作者:Anatoli Kazharski

原因: