GDI+及滚动条的处理

原创 2018年04月16日 10:11:40
using System.Drawing;
using System.Windows.Forms;
using System.Diagnostics;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.AutoScrollMinSize = new Size(250, 350);//文档大小,当窗口大小于文档大小时出现滚动条
        }
        int c1, c2;//矩形和椭圆的绘制次数
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            using (Graphics g = e.Graphics)
            {
                Rectangle c = e.ClipRectangle;//失效区域
                Rectangle r1 = new Rectangle(0, 0, 200, 200);
                r1.Offset(this.AutoScrollPosition);//考虑滚动条的位置,转换文档位置到客户区
                if (c.IntersectsWith(r1))//如果矩形与失效区域相交
                {
                    Debug.Print("绘制矩形{0}", ++c1);
                    using (Pen p = new Pen(Color.Blue, 3))
                    {
                        g.DrawRectangle(p, r1);
                    }
                }
                Rectangle r2 = new Rectangle(50, 200, 200, 150); r2.Offset(this.AutoScrollPosition);
                if (c.IntersectsWith(r2))
                {
                    Debug.Print("绘制椭圆{0}", ++c2);
                    using (Pen p = new Pen(Color.Yellow, 2))
                    {
                        g.DrawEllipse(p, r2);
                    }
                    using (SolidBrush b = new SolidBrush(Color.Red))
                    {
                        g.FillEllipse(b, r2);
                    }
                }
            }

        }
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/donowtop/article/details/79957002

GDI+编程经验:滚动条、缩放、绘制闪烁

  我们在使用GDI+实现类似画图板这样的系统时,经常需要支持平移、滚动条、缩放等功能、解决绘制时的闪烁,对于缺乏GDI+开发经验的朋友,经常会在这些问题上纠缠一段或长或短的时间。在这里,我将自...
  • zhuweisky
  • zhuweisky
  • 2010-03-26 15:30:00
  • 1065

GDI自绘滚动条

  • 2014年06月19日 23:20
  • 270KB
  • 下载

C#中绘图时遇到滚动条问题

C# GDI+绘图高级编程(五)         绘制可滚动的窗口---介绍如何绘制的内容不适合窗口的大小,需要做哪些工作。        下面扩展DrawShapes示例,来解释滚动的概念。为...
  • SunCherryDream
  • SunCherryDream
  • 2013-09-27 17:35:22
  • 6567

C#使用Graphics在窗体上绘图(加滚动条)

代码如下:  public partial class Form1 : Form     {         Pen redPen = new Pen(Color.Red, 3);         S...
  • pengdayong77
  • pengdayong77
  • 2015-12-04 13:32:22
  • 1022

GDI+ 图片黑白处理

 黑白处理的算法:(R + G + B) / 3private Color GetNewColor(Color Source)        {            int Val = (int)(...
  • yongbosong
  • yongbosong
  • 2008-12-27 18:23:00
  • 693

GDI+ 数字图像处理 优秀作品 非常经典

  • 2013年12月24日 10:42
  • 24.97MB
  • 下载

利用GDI+制作模糊效果

 在vista下,VS2008已经带了gdiplus1.1的库。看看下面图片效果,是不是很神奇。配置好GDIPLUS,你就可以在程序中实现了。所以我们再也不用找一些算法来实现模糊,锐化,对比度,高亮等...
  • forestcell
  • forestcell
  • 2008-04-15 12:55:00
  • 1692

关于GDI+贴图拉伸

如果 GDI+ 使用的分辨率(通常是 96 点/英寸)与 Image 对象中存储的分辨率不同,则 DrawImage 方法将缩放图像。例如,假定一个 Image 对象的宽度为 216 像素而存储的水平...
  • xiunai78
  • xiunai78
  • 2012-12-15 17:38:22
  • 997

完美自绘滚动条

  • 2014年04月10日 21:24
  • 215KB
  • 下载

GDI+ 图片颜色渐变

using System; using System.Configuration; using System.Data; using System.Linq; using System.Web...
  • liheao
  • liheao
  • 2016-09-08 19:44:17
  • 443
收藏助手
不良信息举报
您举报文章:GDI+及滚动条的处理
举报原因:
原因补充:

(最多只允许输入30个字)