超简单的画线程序


超简单的画线程序

 

     Windows下作图程序通常要USES一大堆单元,如下面这个只显示一个form、其他什么也不做的程序USES 了9个单元:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; // uses 9个单元

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.


以上本身还只是一个unit,整个program(程序)还要用更多其他unit。而以下这个 CONSOLE 作图程序只 USES 两个单元,它能在整个屏幕上画出一条斜线线


program Project1;


{$APPTYPE CONSOLE}

 uses

  Windows,  graphics;   // 只有2个单元


Var
  DC: HDC;
  ScreenCanvas : tcanvas;
Begin
  DC:=GetDC(0);                   //取得屏幕的DC,参数0指的是屏幕
  ScreenCanvas := TCanvas.Create; //创建一个CANVAS对象
  ScreenCanvas.Handle := DC;      //将画布关联到屏幕句柄,以便能做图
  ScreenCanvas.Pen.Color := Clred;
  ScreenCanvas.MoveTo( 0, 0 );       
  ScreenCanvas.LineTo( 1023, 767 );  
  Readln;

End.


注:

1、DC是device context的缩写,翻译成中文是设备上下文,或者叫设备内容,这个是在Windows Programming里面用到的。
2、作为C语言,如果要在Windows环境绘图,那么就要自己动手实现显卡驱动,显示器驱动。微软为了方便程序员编程,将各种与绘图相关的数据封装在DC这种数据结构中。程序员调用这种数据,由系统自动获取硬件的信息,然后自动填充DC这种结构体。这样很方便。当然,如果想自己把涉及到的硬件驱动自己亲自写一遍,也是可以的,但是个很艰巨的任务。


阅读更多

没有更多推荐了,返回首页