橡皮筋

原创 2006年06月18日 09:00:00

橡皮筋

参见:GDI+编程10个基本技巧”

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;


using System.Runtime.InteropServices;


namespace GDIPlus

{

/// <summary>

/// Form5 µÄժҪ˵Ã÷¡£

/// </summary>

public class Form5 : System.Windows.Forms.Form

{

/// <summary>

/// ±ØÐèµÄÉè¼ÆÆ÷±äÁ¿¡£

/// </summary>

private System.ComponentModel.Container components = null;


public Form5()

{

//

// Windows ´°ÌåÉè¼ÆÆ÷Ö§³ÖËù±ØÐèµÄ

//

InitializeComponent();


//

// TODO: ÔÚ InitializeComponent µ÷ÓúóÌí¼ÓÈκι¹Ô캯Êý´úÂë

//

}


/// <summary>

/// ÇåÀíËùÓÐÕýÔÚʹÓõÄ×ÊÔ´¡£

/// </summary>

protected override void Dispose( bool disposing )

{

if( disposing )

{

if(components != null)

{

components.Dispose();

}

}

base.Dispose( disposing );

}


#region Windows ´°ÌåÉè¼ÆÆ÷Éú³ÉµÄ´úÂë

/// <summary>

/// Éè¼ÆÆ÷Ö§³ÖËùÐèµÄ·½·¨ - ²»ÒªÊ¹ÓôúÂë±à¼­Æ÷ÐÞ¸Ä

/// ´Ë·½·¨µÄÄÚÈÝ¡£

/// </summary>

private void InitializeComponent()

{

//

// Form5

//

this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);

this.ClientSize = new System.Drawing.Size(292, 266);

this.Name = "Form5";

this.Text = "Form5";

this.Load += new System.EventHandler(this.Form5_Load);


}

#endregion


private void Form5_Load(object sender, System.EventArgs e)

{

}


[DllImport("gdi32.dll")]

private static extern bool SetROP2(IntPtr hdc, int nDrawMode);


[DllImport("gdi32.dll")]

private static extern bool Rectangle(IntPtr hdc, int x1, int y1, int x2, int y2);


private int m_StartX, m_StartY;

private int m_EndX, m_EndY;

private int m_Step = 0;


protected override void OnMouseDown(MouseEventArgs e)

{

Graphics g = this.CreateGraphics();

IntPtr hdc = g.GetHdc();

m_Step += 1;

SetROP2(hdc, 10);


if(m_Step == 1)

{

this.m_StartX = e.X;

this.m_StartY = e.Y;

this.m_EndX = e.X;

this.m_EndY = e.Y;

}

else if(this.m_Step == 2)

{

Rectangle(hdc, this.m_StartX, this.m_StartY, e.X, e.Y);

Rectangle(hdc, this.m_StartX, this.m_StartY, e.X, e.Y);


this.m_Step = 0;

}


g.ReleaseHdc(hdc);


//base.OnMouseDown (e);

}


protected override void OnMouseMove(MouseEventArgs e)

{

Graphics g = this.CreateGraphics();

int prex, prey;


if(this.m_Step == 1)

{

IntPtr hdc = g.GetHdc();

prex = this.m_EndX;

prey = this.m_EndY;

SetROP2(hdc, 10);

Rectangle(hdc, this.m_StartX, this.m_StartY, prex, prey);

Rectangle(hdc, this.m_StartX, this.m_StartY, e.X, e.Y);

this.m_EndX = e.X;

this.m_EndY = e.Y;

g.ReleaseHdc(hdc);

}


//base.OnMouseMove (e);

}


protected override void OnPaint(PaintEventArgs e)

{

Graphics g = e.Graphics;

g.FillRectangle(Brushes.White, this.ClientRectangle);


//base.OnPaint (e);

}


}

}

参见:GDI+编程10个基本技巧”







Android之可伸缩的皮筋效果(贝塞尔曲线)的介绍

贝塞尔曲线 引言:         为什么我要写这篇关于贝塞尔曲线的博客,在android里面很多地方都用到了,比如当我们看到一个效果像橡皮筋拉伸一样,有弹性,一般就会用到贝赛尔曲线,不知道细心的...
  • u011068702
  • u011068702
  • 2015年11月15日 15:15
  • 1818

C#结合GDI+实现橡皮筋技术

橡皮筋技术问题描述: 画线时: 在我放开鼠标左键确定之前会有一条虚线显示将来要 "画 "的那条线的情况.此时随着鼠标自由移动,虚线也跟着变长变短.就好像在拉橡皮筋. 当放开左键后.虚线消失,...
  • angxiao
  • angxiao
  • 2012年05月13日 08:26
  • 2191

绘图基础--橡皮筋画线

绘图基础--橡皮筋画线 橡皮筋画线:用户点击鼠标左键定下一个起点,然后把鼠标拖到目标终点,这时程序就会在起始点间画线。 // rubber.cpp #include // D...
  • gencheng
  • gencheng
  • 2013年09月22日 16:21
  • 4117

移动端滚动的橡皮筋问题

在开发的时候遇到了移动端滚动问题,在网上找了很多办法都不行,于是自己试了下面这个方法可行。发出来希望能帮助更多的同学,大家有更好的方法也欢迎在下面分享出来~ 这里面涉及到函数节流的知识,详见Java...
  • feijiges
  • feijiges
  • 2017年09月08日 19:01
  • 173

2.8.4_橡皮筋式的线条绘制

2.8.4_橡皮筋式的线条绘制 橡皮筋式的线条绘制 body{ backgrou...
  • jun_sun_shine
  • jun_sun_shine
  • 2017年05月02日 10:29
  • 348

OpenGL仿作橡皮筋技术

算是精仿吧,毕竟不一样,少了第二次点鼠标左键确认绘图,这个可以加上的: #include #include #include using namespace std ; #pragma c...
  • z8110
  • z8110
  • 2016年12月26日 10:43
  • 566

HTML5实现一根拉伸的橡皮筋

鼠标事件 var ctx; var linew=10; var color="rgb(255,0,0)"; var isClick; var mx=5...
  • sofeien
  • sofeien
  • 2014年12月10日 10:56
  • 1450

去除IOS橡皮筋效果

All you need is an element with height or max-height, overflow: auto and -webkit-overflow-scrollin...
  • babylove_lin
  • babylove_lin
  • 2017年12月26日 14:53
  • 262

利用橡皮筋类进行图片区域选取和操作

1、  利用橡皮筋类进行图片区域选取和操作2、  实现:1)声明橡皮筋类变量并初始化将橡皮筋类变量声明为View类的成员变量,并在View类的构造函数中进行初始化。 class CShowPict...
  • lichengyu
  • lichengyu
  • 2010年09月26日 16:39
  • 1762

OpenGL 橡皮筋技术

后天图形学考试,整理了下实验课上的OpenGL关于橡皮筋实验的代码。简单实现了如下功能:1.右键菜单功能响应2.右键选择画折线或矩形,可保存(书上例子演变)3.可选取画线或画矩形的颜色,线宽,像素大小...
  • ldl8818
  • ldl8818
  • 2011年04月23日 23:50
  • 729
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:橡皮筋
举报原因:
原因补充:

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