C#,精巧实用的代码,调用GDI32.DLL绘制图形的源程序

news2024/11/23 4:14:09

C#画图既可以使用 System.Drawing 命名空间的各种基础类。在某些情况下,也可以直接调用 Windows 的公共基础链接库 GDI32.DLL。

1 GDI32.DLL图形设备接口


意图

Microsoft Windows图形设备界面(GDI)使应用程序能够在视频显示器和打印机上使用图形和格式化文本。基于Windows的应用程序不直接访问图形硬件。相反,GDI代表应用程序与设备驱动程序交互。

适用

GDI可用于所有基于Windows的应用程序。

开发人员受众

此API是为C/C++程序员设计的。需要熟悉Windows消息驱动体系结构。

运行时要求

有关使用特定功能需要哪些操作系统的信息,请参阅该功能文档的“要求”部分。

在本节中

  1. 位图
  2. 画笔
  3. 剪裁
  4. 颜色
  5. 坐标空间和变换
  6. 设备上下文
  7. 填充形状
  8. 字体和文本
  9. 直线和曲线
  10. 图元文件
  11. 多个显示器
  12. 绘画和绘图
  13. 路径
  14. 钢笔
  15. 打印和打印后台处理程序
  16. 矩形
  17. 区域

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1533089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

停车管理系统asp.net+sqlserver

停车管理系统asp.netsqlserver 说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 基于asp.net架构和sql server数据库, 功能模块: 停车管理系统asp.net sqlserver 用户功能有菜单列表 我的停车记录 专…

Qt学习笔记(一)——Qt初识

本文仅是 学习时记录的笔记,供自己复习时使用。 1.创建好文件(QWidget窗口) main.cpp中: 注:Widget类继承父类QWidget. widget.h中: Widget.cpp中: 打开Forms文件夹中的widget.ui文件: 打开左边编辑&am…

由浅到深认识Java语言(7):方法(函数)

该文章Github地址:https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.c…

外包干了5天,技术退步明显。。。。

说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&a…

springcloud-Eureka注册中心

如果你要理解这个技术博客博客专栏 请先学习以下基本的知识: 什么是微服务什么是服务拆分什么是springcloud Springcloud为微服务开发提供了一个比较泛用和全面的解决框架,springcloud继承了spring一直以来的风格——不重复造轮子,里面很多的…

ideaSSM 工厂效能管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea 开发 SSM 工厂效能管理系统是一套完善的信息管理系统,结合SSM框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库&#xff…

FFmpeg分析视频信息输出到指定格式(csv/flat/ini/json/xml)文件中

1.查看ffprobe帮助 输出格式参数说明: 本例将演示输出csv,flat,ini,json,xml格式 输出所使用的参数如下: 1.输出csv格式: ffprobe -i 4K.mp4 -select_streams v -show_frames -of csv -o 4K.csv 输出: 2.输出flat格式: ffprobe -i 4K.mp4 -select_streams v -show_frames …

若依微服务跑起来-微服务小白入门(1)

背景 若依的基本框架系列,已经构建起来,请参照 小白入门系列 - 鸡毛掸子 这些东西理解,并且实际板砖以后,有必要对现在流行的一些概念做一些升级,现在我们就进入到所谓的cloud版本,其实,前面的…

7.【Linux】进程间通信2(共享内存||消息队列)

共享内存 介绍 1.共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。 2.当共享内存创建出来后,通过系统调用挂接到…

二、阅读器的开发(初始)-- 1、阅读器简介及开发准备工作

1、阅读器工作原理及开发流程 1.1阅读器工作原理简介 电子书(有txt、pdf、epub、mobi等格式)->解析(书名、作者、目录、封面、章节等)->(通过阅读器引擎)渲染 -> 功能(字号、背景色、…

力扣热门算法题 56. 合并区间,57. 插入区间,58. 最后一个单词的长度v

56. 合并区间,57. 插入区间,58. 最后一个单词的长度,每题做详细思路梳理,配套Python&Java双语代码, 2024.03.20 可通过leetcode所有测试用例。 目录 56. 合并区间 解题思路 完整代码 Python Java ​编辑 5…

【NLP笔记】预训练+微调范式之OpenAI Transformer、ELMo、ULM-FiT、Bert..

文章目录 OpenAI TransformerELMoULM-FiTBert基础结构Embedding预训练&微调 【原文链接】: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 【本文参考链接】 The Illustrated BERT, ELMo, and co. (How NLP Cracked Tra…

ASP.NET-Global.asax使用详解

本文介绍了如何使用Global.asax文件来增强ASP.NET Web应用程序的功能。首先,介绍了Global.asax文件的作用和基本功能。接着,详细探讨了在Global.asax中实现定时任务、应用程序级别的错误处理、应用程序启动和结束时执行特定逻辑等功能。随后,…

Macbook m1安装docker详细教程

下载安装包 进入官网 https://www.docker.com/ 下滑找到下载位置 下滑找到Mac对应安装包 等待下载完成即可。 安装 双击打开下载的安装包 将Docker拖到Applications中 安装完成后,找到安装的Docker 双击打开 点击accept同意 进入下面: 点fini…

Chart-based Reasoning: Transferring Capabilities from LLMs to VLMs

Chart-based Reasoning: Transferring Capabilities from LLMs to VLMs 相关链接:arXiv 关键字:Vision-language models、ChartQA、multimodal reasoning、fine-tuning、synthetic data 摘要 本文提出了一种技术,将大型语言模型(…

Python分析人民日报关于台湾的报道

【项目背景】 《人民日报》数据挖掘,时间:1949.10.1-2023.12.31 标题含有“台湾”的报道 需要以下内容 1、标题,即上述时间段的报道标题和相应的报道时间、版面 2、包含标题、时间、版面的所有报道内容 3、报道的年份和数量的趋势图 4、…

CV论文--2024.3.21

1、Chain-of-Spot: Interactive Reasoning Improves Large Vision-Language Models 中文标题:Chain-of-Spot:交互式推理改进大型视觉语言模型 简介:在视觉语言理解领域,模型在解释和推理视觉内容方面的熟练程度已经成为许多应用的…

企业组织机构代码查询入口词令直达关键词口令是什么?

什么是企业组织机构代码? 组织机构代码是国内依法注册、依法登记的机关、企事业单位、社会团体,以及其他组织机构颁发一个在全国范围内唯一的、始终不变的代码标识。组织机构代码在单位的运营和管理中发挥着重要作用。 如何查询获取企业组织机构代码&a…

【机器学习】基于萤火虫算法优化的BP神经网络分类预测(FA-BP)

目录 1.原理与思路2.设计与实现3.结果预测4.代码获取 1.原理与思路 【智能算法应用】智能算法优化BP神经网络思路【智能算法】萤火虫算法(FA)原理及实现 2.设计与实现 数据集: 多输入多输出:样本特征24,标签类别4。…

一些常见漏洞原理

一些漏洞的原理: SQL注入漏洞: SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数…