第5章,[Win32 章节] :绘制直线(二)
专栏导航上一篇第5章[Win32 章节] 绘制直线一回到目录下一篇第5章[Win32 章节] 绘制直线三本节前言对于本节所讲解的知识有可能你会需要时不时地参考本专栏的其它文章。真的遇到了需要参考之前的文章的知识点请你自行查阅。我呢也会提到一部分的参考课节。但是呢你不应该依赖于我的主动提及。最好呢你自己能够多去了解和查看本专栏目录。学习本节之前需要先学习以下的先修课节。参考课节第5章[Win32 章节] 绘制直线一本节内容主要来自于对佩措尔德原教材的大段抄录。我们开始。一. 本节内容为了画一条直线必须调用两个函数。第一个函数用来指定直线的起点第二个函数用来指定直线的终点。MoveToEx (hdc, xBeg, yBeg, NULL); LineTo (hdc, xEnd, yEnd);MoveToEx 实际上没有画任何东西只是设置设备环境的 “当前位置” 属性。接着LineTo 函数在指定线段的终点的同时在当前位置和终点之间绘制一条直线。当前位置可以认为是某些 GDI 函数绘制的起始点。在默认的设备环境中点 0 0为最初设定的当前位置。如果没有设定当前位置那么调用 LineTo 函数就从客户区的左上角开始画线。让我们回顾一下历史在 16 位版本的 Windows 中设置当前位置的函数是 MoveTo 。这个函数仅有三个参数设备环境句柄x 坐标和 y 坐标。函数的返回值是运行该函数之前的当前位置它是一个由两个 16 位的值拼合的 32 位无符号整型数值。然而在 32 位版本的 Windows 中坐标值本身就是 32 位。由于 32 位版本的 C 没有定义 64 位的整型数据类型所以这种变化也就意味着 MoveTo 不能够在返回值上表示先前的当前位置了。MoveTo 函数的返回值在实际的程序设计中几乎从来不会使用因此就需要一个新的函数 MoveToEx 。MoveToEx 函数的最后一个参数是一个指向 POINT 结构的指针。从 MoveToEx 函数返回后POINT 结构的 x 和 y 字段表示运行该函数之前的当前位置。如果不需要这些信息通常也是如此可以像上面的例子所示的那样设置最后一个参数为 NULL 。警告尽管在 Windows 98 中出现的坐标值都是 32 位的但是仅有 16 位被利用因此坐标值的大小实际上是在 -32768 到 32767 之间。在 Windows NT 中这 32 位数值都被使用。通过调用下面的函数可以获取当前位置。GetCurrentPositionEx (hdc, pt);这里的 pt 是一个 POINT 结构。专栏导航上一篇第5章[Win32 章节] 绘制直线一回到目录下一篇第5章[Win32 章节] 绘制直线三

相关新闻

《赛博朋克2077》MOD保姆级配置与安装指南:重塑夜之城体验

《赛博朋克2077》MOD保姆级配置与安装指南:重塑夜之城体验

对于许多《赛博朋克2077》的玩家而言,原版游戏虽然剧情出色,但在部分机制与视觉体验上仍有提升空间。无论是老玩家寻求全新挑战,还是新玩家希望降低上手门槛,合理配置MOD都能极大优化游戏体验。本指南将系统梳理主流MOD的核心功能…

2026/7/10 22:33:37阅读更多 →
盘州厨房电器集成灶热门品牌门店服务详解

盘州厨房电器集成灶热门品牌门店服务详解

盘州厨房电器集成灶选购指南:本地门店服务与品牌解析在六盘水盘州市进行家居装修或厨房改造时,集成灶因其节省空间和优化吸烟效果的特点,成为许多家庭的关注焦点。然而,面对市场上众多的品牌和复杂的参数,消费者往往难…

2026/7/10 22:33:37阅读更多 →
ChatGPT Work来了:OpenAI和Anthropic的Agent之战正式开打

ChatGPT Work来了:OpenAI和Anthropic的Agent之战正式开打

7月10日凌晨,OpenAI一口气发了两件东西:GPT-5.6系列模型,和ChatGPT Work智能体。 模型的事先不多说,后面拆数据。先说ChatGPT Work——这是真正有意思的部分。 ChatGPT Work到底是什么 不是聊天机器人,不是代码补全…

2026/7/10 22:33:35阅读更多 →
专业排版还原实战:如何解决Grok到word的格式问题?解析数据结构化迁移及“AI 导出鸭”工具的价值

专业排版还原实战:如何解决Grok到word的格式问题?解析数据结构化迁移及“AI 导出鸭”工具的价值

一 AI 导出鸭技术详解:如何解决Grok到word的格式问题 二 如何解决Grok到word的格式问题?硬核方案与AI 导出鸭实践 三 从乱码到规范:借助AI 导出鸭攻克如何解决Grok到word的格式问题正文:深入解析Grok到Word的格式转换困局与智能解…

2026/7/10 23:23:41阅读更多 →
Docker Compose 到 K8s 的迁移路径:不是一键转换那么简单

Docker Compose 到 K8s 的迁移路径:不是一键转换那么简单

Docker Compose 到 K8s 的迁移路径:不是一键转换那么简单 一、Kompose 转换完的 YAML 也别直接部署 Docker Compose 和 K8s 之间的概念鸿沟远超表面相似度。Kompose(kompose convert)能生成初版 YAML,但它只是一个语法翻译器——不…

2026/7/10 23:23:41阅读更多 →
手把手教你学 Simulink——基于双重移相(Dual Phase Shift, DPS)控制的双主动全桥(DAB)DC‑DC 最小电流应力控制仿真

手把手教你学 Simulink——基于双重移相(Dual Phase Shift, DPS)控制的双主动全桥(DAB)DC‑DC 最小电流应力控制仿真

目录 手把手教你学 Simulink——基于双重移相(Dual Phase Shift, DPS)控制的双主动全桥(DAB)DC‑DC 最小电流应力控制仿真 一、为什么 DAB 要用 双重移相 + 最小电流应力(Minimum Current Stress, MCS)控制 1.1 DAB 典型应用 1.2 单重移相(SPS)问题 二、DAB 拓扑与…

2026/7/10 23:23:41阅读更多 →
Qt + FFmpeg 音频工具:媒体流详情实现

Qt + FFmpeg 音频工具:媒体流详情实现

前言 音视频文件在容器层面由一个或多个流(stream)组成,每个流拥有独立的编码格式、参数配置和元数据。了解这些流的详细信息对于后续处理决策至关重要——比如判断音频是否需要重采样、视频帧率是否匹配、色彩空间是否正确等。AudioTools 的…

2026/7/10 23:23:41阅读更多 →
一个简单的 Oracle SPA示例

一个简单的 Oracle SPA示例

简介 本文通过一个示例来说明如何进行SPA。 SPA即SQL Performance Analyzer,按照官网的说明: SQL Performance Analyzer enables you to assess the impact of system changes on the response time of SQL statements. SQL性能分析器(SQL …

2026/7/10 23:23:41阅读更多 →
计网物理层基本概念

计网物理层基本概念

物理层是五层协议体系中的最底层,它的任务极其单纯:把比特流从一个节点透明地传送到相邻节点。物理层关心的不是"数据是什么意思",而是:用什么样的电压表示 1 和 0?一个比特持续多长时间?要不要区…

2026/7/10 23:18:41阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/10 12:10:00阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/10 12:29:21阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/10 4:59:05阅读更多 →
浏览器缓存行为深度解析:Chrome/Firefox/Safari 对 304 响应的 5 种触发场景对比

浏览器缓存行为深度解析:Chrome/Firefox/Safari 对 304 响应的 5 种触发场景对比

浏览器缓存行为深度解析:Chrome/Firefox/Safari 对 304 响应的 5 种触发场景对比当你在浏览器地址栏敲入一个网址时,背后可能隐藏着一场关于"要不要重新下载资源"的精密博弈。这场博弈的裁判是HTTP缓存机制,而304状态码则是这场博弈…

2026/7/10 0:00:01阅读更多 →
RoboWits:面向创造性问题求解的双臂机器人认知推理基准

RoboWits:面向创造性问题求解的双臂机器人认知推理基准

1. 项目概述:这不是又一个机器人抓取数据集,而是一次对“思考力”的压力测试 RoboWits——这个名字里藏着两个关键信号:“Robo”直指物理世界中的具身智能体,“Wits”则毫不掩饰地指向人类最核心的认知能力:机敏、判断…

2026/7/10 0:00:01阅读更多 →
5分钟完全指南:如何使用TegraRcmGUI图形化工具解锁Switch无限可能

5分钟完全指南:如何使用TegraRcmGUI图形化工具解锁Switch无限可能

5分钟完全指南:如何使用TegraRcmGUI图形化工具解锁Switch无限可能 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是一款专为Windows…

2026/7/10 0:00:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/10 13:39:09阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/10 22:20:33阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/10 17:29:22阅读更多 →