最近正在修改程序界面,需要修改界面里的控件,使其改变形状和颜色.
自定义控件.复合的控件,如combobox,tabcontrol怎么才能获得其中的一部分,再取消原来系统的绘制,自己重绘呢?
   例如scrollbar上下三角的部分,中间的滑动条,怎么才能分别获得这三部分分别绘制呢?
   谁知道这方面给介绍介绍,或者资料什么的?!
   谢了!!

解决方案 »

  1.   

    从控件派生自己的类 override OnPaint方法,用GDI或者GDI+自己画界面
      

  2.   

    我知道继承OnPaint方法,可是还是象上面说的,复合控件如何获得其中一部分是个问题,改变其形状,也需要重绘呀!?
      

  3.   

    base.OnPaint();获的控件整个样式, 你再在上面画就可以,不过,好象也有问题,我试过,想把按钮画成圆的,但是如果用这个,就变成按钮上有一个圆圈了.. 要改变形状好象只能用Path...我是这么觉得的.
      

  4.   

    有些控件在.net是没什么好办法进行重绘的,如滚动条,就是用C++改变样式也不简单。
      

  5.   

    滚动条的重绘是个很麻烦的事,重绘其中的一部分时你只能用一个区域来表示,也就是在原有的整个控件表面剪裁一部分出来,区域的坐标还要你自己去计算,有了这个区域,用gdi+来绘制你希望的效果吧,除此之外不会有什么好办法的。
    其实我对楼主的问题也很郁闷,难搞,烦啊。
      

  6.   

    在继承 OnPaint 方法重画控件时 不要加入 base.OnPaint(e) 这句代码你再试试