科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件VC++.NET下GDI+编程之GDI+简介

VC++.NET下GDI+编程之GDI+简介

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

实现绘画功能就需要一个做画的平台及做画的工具。最常用的绘画平台可能就是一张白纸。

作者:刘涛编译 来源:天极网 2007年11月16日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
 (三)画笔

  尽管Graphics类提供了用以绘画的平台,但是还需要绘画的工具。可以使用的最基本的工具就是画笔。GDI+库通过Pen类提供了一个画笔。为了得到一个画笔,可以声明一个指向Pen类的指针,画笔必须说明的一个最基本的信息是它的颜色,可能要使用下面的构造函数来说明画笔的颜色:

public: Pen(Color color);

  下面是一个例子代码:

private: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
{
 Color clrBlue = Color::Blue;
 Pen *penRed = new Pen(clrBlue);
}

  如果已经创建了一个画笔,为了更改颜色,可以分配一个所需要的颜色名或值给Pen::Color 属性。

  Pen提供的细节远远不止这些,现在我们只是简单地使用它。

  (四)图形对象

  绝大多数的绘画都是在一个图形对象上进行。多数情况下,当需要使用图形对象时它并不一定可用,你必须在所要绘画的对象上对它提出申请或创建它。这两种操作都很容易。

  1、得到一个图形对象

  在GDI+中,图形对象基于Graphics类,所以,在绘画以前,需要获取一个图形对象。幸运的是,每一个窗体控件,也就是每一个基于Control的类自动继承了一个称为CreateGraphics()的方法,它提供了操作控件图形部分的途径。Control::CreateGraphics()方法的语法是:

public: Graphics *CreateGraphics();

  正如所看到的,CreateGraphics()方法返回调用变量的图形对象。下面的例子获取窗体的图形变量。

private: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
{
 Graphics *graph = this->CreateGraphics();
}

  获取控件图形对象的另外一种技术是调用静态方法Control::FromHwnd(),它的语法是:

public: static Graphics *FromHwnd(IntPtr hwnd);

  注意,这个方法是静态的,传递给它的参数必须是你想要获取的图形对象所属控件。所有窗体控件都有一个句柄叫Handle,下面的例子说明如何使用句柄获取窗体的图形对象:

private: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
{
 Graphics *graph = Graphics::FromHwnd(this->Handle);
}

  如果你正在使用窗体的Paint事件,它通过PaintEventArgs提供了一个非常方便使用的图形对象,可以按照下面的代码方式访问图形对象:

private: System::Void Form1_Paint(System::Object * sender,
System::Windows::Forms::PaintEventArgs * e)
{
 e->Graphics . . .
}

  四、绘画步骤

  (一)获取设备上下文

  正如上面提到的,在绘画之前,确认已经有了一个图形对象。为了进行实际绘画,图形对象提供了适合于各种图形的方法,用来画某种图形的方法都有一个带有"Draw"开头的名字。此外,用于画每个已知图形的方法都需要一个Pen参数。所以,当绘画时,你第一个要做的决定就是想要画什么样的图形或图形类型,第二个决定可能就是定义边界的颜色。绘画时另外两个重要问题是:位置和尺寸。

  (二)图形或形状的起点

  为了跟踪绘画时的踪迹,在其上面绘画的对象都使用了坐标系,它的左上角是起点坐标点(0,0),如果在窗体上做画,那么这个坐标原点就在标题条的左下角。


图五、窗体坐标系

  如何设定图形或形状的起点,要视形状而定。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章