WEB开发网
开发学院软件开发VC .NET中的自绘机制 阅读

.NET中的自绘机制

 2006-07-18 11:26:21 来源:WEB开发网   
核心提示: GraphicMenu 和 Menu 类一样继承自 Component:Public Class GraphicMenu : Inherits Component这意味着在设计时它会悬停在设计器的组件托盘上(如 Figure 2),GraphicMenu类相当于现有菜单对象的转换器&mda

GraphicMenu 和 Menu 类一样继承自 Component:Public Class GraphicMenu : Inherits Component     这意味着在设计时它会悬停在设计器的组件托盘上(如 Figure 2)。GraphicMenu类相当于现有菜单对象的转换器——两者都是应用程序主菜单和上下文菜单。你 添加一个GraphicMenu类实例到窗体的控件集中,窗体便用这个类将普通菜单转换成自绘菜单。

Figure 2 Visual Basic .NET的设计器

Figure 3中的代码显示了 GraphicMenu 类的入口方法 Init()。这个方法将一个灰色的3D的只是文本式样的标准菜单变成了多彩菜单。这个方法以一个Menu对象作为传入参数,将该Menu对象的所有菜单项设置为自绘方式。如果这个菜单是一个上下文菜单——也就是说该对象类型是ContextMenu的话——那么 它会直接进行自绘循环操作。

那么,为什么你要给菜单增加更多图象元素呢?除了改善应用程序的外观,其中的一个主要原因是为了给菜单项旁边添加说明性图标。这意味着为了存储 拟在菜单项旁边绘制的图标,我们要向每一个 MenuItem 添加一些额外的信息。在理想的情况下,需要用一个新的派生类来代替MenuItem 类 ,假设这个派生类是 GraphicMenuItem。这个 GraphicMenuItem 类更象父类,只是多了个Icon属性。当你总要通过编程来生成或操纵菜单,这不失为一个好方法。 许多基于 Visual Studio .NET 应用程序的菜单通常是利用菜单设计器来生成(如 Figute 4),它会自动创建并注册 MenuItem 对象。

Figure 4 Visual Studio .NET的菜单设计器

上一页  1 2 3 4 5 6 7 8  下一页

Tags:NET 机制

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接