如何进行异或作图 也就是画图时的橡皮筋了,用过CAD或者画板的人都知道啊,大家也会用到吧?帮忙先. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我自己搞定了,大家过来接分:private bool isdown=false;private Point p1 = Point.Empty;private Point p2 = Point.Empty;private void pic_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { isdown=true; pic.Capture = true; p1 = pic.PointToScreen(new Point(e.X, e.Y)); } private void pic_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) { isdown=false; pic.Capture = false; p2 = Point.Empty; } private void pic_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { if(isdown) { Point p = pic.PointToScreen(new Point(e.X, e.Y)); if(p2 != Point.Empty) { ControlPaint.DrawReversibleLine(p1, p2, Color.Black); } p2 = p; ControlPaint.DrawReversibleLine(p1, p2, Color.Black); } } 楼主的代码有点小问题:画的线会超出picture控件的范围。另外请教个问题:什么叫异或作图? pic是一个picture控件的名称,关于异或,举个例子,pic本身有已经有图了,第一次在AB两点画一条直线,这样AB间的图像就被新的直线覆盖了,如果设置图形为异或方式,再在AB间以同样的颜色画一条直线,此时,并不是AB间被新的颜色覆盖,而是恢复成没有画直线前的样子(也就是将第一条直线擦掉了,留下的是原来的图像),通过这种方法,我们在移动图像时,只要用同样的方式在原来位置画图就可以了,这对于橡皮筋类的作图是非常方便,在VC中也经常使用,而C#中好象没有了。 双屏显示 问题 关于获取自绘控件中的内容【100分求高手解惑】 怎么将重置后的密码发到指定的邮箱啊? 请高手来解决问题啦? 如何防止多个客户机获取服务器共享目录资源上文件 的唯一性~~~~在线等 ADSL? 关于C#连接Oracle的问题?高手请赐教 动态生成控件和动态相应事件。。。。。。 求com+的一个入门例子,最好可以结合数据库的,各位老大帮帮忙! 怎样生成过Word文件 怎样判断一个字符串是不是数字? CSDN.NET社区 QQ群 一个简单的问题
private Point p1 = Point.Empty;
private Point p2 = Point.Empty;private void pic_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
isdown=true;
pic.Capture = true;
p1 = pic.PointToScreen(new Point(e.X, e.Y));
} private void pic_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
isdown=false;
pic.Capture = false;
p2 = Point.Empty;
} private void pic_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(isdown)
{
Point p = pic.PointToScreen(new Point(e.X, e.Y));
if(p2 != Point.Empty)
{
ControlPaint.DrawReversibleLine(p1, p2, Color.Black);
}
p2 = p;
ControlPaint.DrawReversibleLine(p1, p2, Color.Black);
}
}