📄 cline.cs
字号:
using System;
using System.Drawing;
namespace VCSharp
{
/// <summary>
/// CLine 的摘要说明。
/// </summary>
///
//直线段类
public class CLine:CGElement
{
protected PointF m_Begin;
protected PointF m_End;
Module m=new Module();
public PointF LBegin
{
get{return m_Begin;}
set{m_Begin=value;}
}
public PointF LEnd
{
get{return m_End;}
set{m_End=value;}
}
public CLine()
{
Init();
}
public CLine(PointF pBegin,PointF pEnd)
{
Init();
m_Begin=pBegin;
m_End=pEnd;
}
public CLine(CLine aline)
{
m_Begin=aline.LBegin;
m_End=aline.LEnd;
}
private new void Init()
{
base.Init();
m_Begin=new PointF(0,0);
m_End=new PointF(0,0);
}
//绘直线段
override public void Draw(Graphics g,DrawMode aDrawMode)
{
long aPen,oldP;
//将控制点的坐标由世界坐标转换为页面坐标
PointF eb=m.WorldtoPage(m_Begin);
PointF ee=m.WorldtoPage(m_End);
//获得当前绘图环境的句柄
IntPtr hdc=g.GetHdc();
//设置画笔参数
int[] penPara=DrawSettings(hdc,aDrawMode);
//创建画笔
aPen=Win32API.CreatePen(penPara[0],penPara[1],penPara[2]);
//把画笔选入绘图环境,并返回原来的画笔
oldP=Win32API.SelectObject(hdc,aPen);
Win32API.LPPOINT prePos=new Win32API.LPPOINT();
//把画笔移动到直线段的起点处
Win32API.MoveToEx(hdc, (int)(eb.X), (int)(eb.Y), prePos);
//绘直线段到终点
Win32API.LineTo(hdc, (int)(ee.X), (int)(ee.Y));
//把原来的画笔选入绘图环境
Win32API.SelectObject(hdc, oldP);
//删除新创建的画笔
Win32API.DeleteObject(aPen);
//释放绘图环境句柄
g.ReleaseHdc(hdc);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -