当前位置: 首页 > news >正文

WinAPI: BeginPath、EndPath、StrokePath、FillPath、StrokeAndFillPath

BeginPath         {路径开始}
EndPath           {路径结束}
StrokePath        {绘制路径}
FillPath          {填充路径}
StrokeAndFillPath {绘制并填充路径}

//在路径中可以使用的图形命令有:
AngleArc
Arc
ArcTo
Chord
CloseFigure
Ellipse
ExtTextOut
LineTo
MoveToEx
Pie
PolyBezier
PolyBezierTo
PolyDraw
Polygon
Polyline
PolylineTo
PolyPolygon
PolyPolyline
Rectangle
RoundRect
TextOut
本例效果图:

o_85232.gif

代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    RadioGroup1: TRadioGroup;
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  RadioGroup1.Items.CommaText := '绘制路径,填充路径,绘制并填充';
  RadioGroup1.ItemIndex := 0;
  RadioGroup1.Columns := RadioGroup1.Items.Count;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  Canvas.Font.Size := 36;
  Canvas.Font.Style := [fsBold];
  SetBkMode(Canvas.Handle, TRANSPARENT);

  BeginPath(Canvas.Handle);
  Canvas.Rectangle(10,10,110,110);
  Canvas.TextOut(20,30,'Delphi 2007');
  EndPath(Canvas.Handle);

  Canvas.Brush.Color := clYellow;
  Canvas.Pen.Color := clRed;

  case RadioGroup1.ItemIndex of
    0: StrokePath(Canvas.Handle);
    1: FillPath(Canvas.Handle);
    2: StrokeAndFillPath(Canvas.Handle);
  end;
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  Repaint;
end;

end.
窗体设计:
object Form1: TForm1
  Left = 373
  Top = 260
  Caption = 'Form1'
  ClientHeight = 193
  ClientWidth = 321
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  Position = poDesigned
  OnCreate = FormCreate
  OnPaint = FormPaint
  PixelsPerInch = 96
  TextHeight = 13
  object RadioGroup1: TRadioGroup
    Left = 28
    Top = 131
    Width = 265
    Height = 49
    Caption = 'RadioGroup1'
    TabOrder = 0
    OnClick = RadioGroup1Click
  end
end

相关文章:

  • SQL2005 sa Islock 用户不能正常登录的处理方法
  • 做人、做事,做架构师——架构师能力模型解析(转)
  • P2P网站的三种直播内容策略
  • Ext开源项目-MYOIS
  • 应用程序访问权限完全攻略
  • 触发器使用(1)
  • [导入]VI常用实用命令学习
  • [IT生活推荐]大家一起来玩游戏喽,来的都进!
  • frame-relay之multi-point的配置
  • hao123的成功之路
  • Javascript 验证码
  • ERP会计科目 疱丁解
  • 七月,又逢雷雨夜
  • c#中值类型和引用类型
  • 9.4.1 使用参数来防止SQL注入
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 自己简单写的 事件订阅机制
  • #Java异常处理
  • 2017年终总结、随想
  • ES6语法详解(一)
  • input实现文字超出省略号功能
  • iOS 系统授权开发
  • 解决iview多表头动态更改列元素发生的错误
  • 微信小程序开发问题汇总
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 终端用户监控:真实用户监控还是模拟监控?
  • 1.Ext JS 建立web开发工程
  • # 数据结构
  • #、%和$符号在OGNL表达式中经常出现
  • #13 yum、编译安装与sed命令的使用
  • #define、const、typedef的差别
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (6)STL算法之转换
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .sh
  • /*在DataTable中更新、删除数据*/
  • ;号自动换行
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [.NET]桃源网络硬盘 v7.4
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [CF407E]k-d-sequence
  • [CVPR2021]Birds of a Feather: Capturing Avian Shape Models from Images
  • [Design Pattern] 工厂方法模式
  • [hive] posexplode函数