C#画图既可以使用 System.Drawing 命名空间的各种基础类。在某些情况下,也可以直接调用 Windows 的公共基础链接库 GDI32.DLL。
1 GDI32.DLL图形设备接口
意图
Microsoft Windows图形设备界面(GDI)使应用程序能够在视频显示器和打印机上使用图形和格式化文本。基于Windows的应用程序不直接访问图形硬件。相反,GDI代表应用程序与设备驱动程序交互。
适用
GDI可用于所有基于Windows的应用程序。
开发人员受众
此API是为C/C++程序员设计的。需要熟悉Windows消息驱动体系结构。
运行时要求
有关使用特定功能需要哪些操作系统的信息,请参阅该功能文档的“要求”部分。
在本节中
- 位图
- 画笔
- 剪裁
- 颜色
- 坐标空间和变换
- 设备上下文
- 填充形状
- 字体和文本
- 直线和曲线
- 图元文件
- 多个显示器
- 绘画和绘图
- 路径
- 钢笔
- 打印和打印后台处理程序
- 矩形
- 区域
using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
struct TEXTMETRIC
{
public Int32 tmHeight;
public Int32 tmAscent;
public Int32 tmDescent;
public Int32 tmInternalLeading;
public Int32 tmExternalLeading;
public Int32 tmAveCharWidth;
public Int32 tmMaxCharWidth;
public Int32 tmWeight;
public Int32 tmOverhang;
public Int32 tmDigitizedAspectX;
public Int32 tmDigitizedAspectY;
public Char tmFirstChar;
public Char tmLastChar;
public Char tmDefaultChar;
public Char tmBreakChar;
public Byte tmItalic;
public Byte tmUnderlined;
public Byte tmStruckOut;
public Byte tmPitchAndFamily;
public Byte tmCharSet;
}
[StructLayout(LayoutKind.Sequential)]
struct RECT
{
public Int32 left;
public Int32 top;
public Int32 right;
public Int32 bottom;
}
sealed class Gdi
{
public const Int32 TRANSPARENT = 1;
public const Int32 FW_DONTCARE = 0;
public const Int32 FW_THIN = 100;
public const Int32 FW_EXTRALIGHT = 200;
public const Int32 FW_ULT