首先需要强调一下:菜单项“隐藏”的类型是Check, 否则,就会出各种错误
item_i.hpp中,接口类IItem中需要增加两个接口,
直线类中,增加一个私有成员_visible, 并在构造时初始化它,即构造时,是可视化的
然后实现两个接口方法:
然后,修改画直线的方法,根据是否可见,然后决定是否画直线
为菜单项“隐藏”绑定响应函数,并实现它
构造的图元的方法中,添加注释,只保留创建直线的宏,因为其他图元类中的接口方法还没有实现,是抽象类,不能够创建对象
测试效果:
隐藏其他图元,也用类似的方法:
1. 图元类添加一个私有成员:bool _visible, 并在构造时初始化
2. 实现两个接口方法
3. 修改图元类的Draw()方法,当图元的IsVisible() 返回真时,才调用它的Draw()方法
注意:
画一条直线之后,将直线设置为隐藏,是将这个直线对象的_visible属性设置为false,这个并不是直线类的_visible成员,所以这个并不会影响,画十字形时,十字对象中的LineItem成员的_visible属性