相关文章  
  • Visual Studio 2005中C++的变化
  • 使用Reporting Services窗体身份验证
  • 动态下拉菜单的简单实现
  • 如何实现日期比较 显示五天内日期
  • 动态加载用户控件的组件
  • 小心GDI+资源泄漏 -- 猜想 测试 应对全过程
  • 浅谈 C# 中的代码协同 (Coroutine) 执行支持
  • 在 C# 中处理结构内的数组源代码分析
  • 谈 WinDbg 之 InternalCall 的使用与实现
  • 谈 WinDbg 之 AppDomain 的创建过程
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    构建一个弹出式图象按钮3

    dows的信息传递给继承者的OnPaint程序。在编写覆盖程序时你可以运行自己的代码,而不需要完全按照基类的做法。尽管Control类不是一个抽象基类,但它自己并不完成任何绘制。然而,在你需要继承一个类时,――比如Button或Label类,通常你会取代基类的painting,而不是将它添加到你的程序中。OnPaint 覆盖中包括一个对MyBase的调用,这不是因为基类需要进行处理来实现绘制,而是为了给用户提供一个自己的Paint事件。继承类不会直接代表其基类来触发事件,对MyBase.OnPaint的调用导致基类触发客户端Paint事件。
      
      这一点会对你将来构建控件有所影响,因此为了让你有更全面的了解我将从另一个角度对它进行讲述。如果你通过覆盖一个OnPaint 来支持你自己的作品(就是说用于一个标准的Button基类),而且你不仅仅想要实现基类所完成绘制,那么你的OnPaint覆盖中就不应该包含MyBase.OnPaint调用。在这个场景中,如果你还想为使用派生控件的开发人员提供一个Paint事件,则必须在基类中提供一个Paint事件声明。如果基类中已存在了一个Paint事件,你则必须用Shadows关键字来声明你自己的事件从而将基类的事件隐藏起来。不要轻易尝试使用Shadows,因为它容易让使用该控件的开发人员搞糊涂,虽然在一个事件中使用这种方法看起来似乎

    页码:[1] [2] [3] [4] [5] [6] [7] [8]3页、共8页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved