文档章节

WinAPI: CreateRectRgn、CreateRectRgnIndirect、FillRgn、FrameRgn - 建立矩形区域

涂孟超
 涂孟超
发布于 2014/09/26 15:34
字数 141
阅读 6
收藏 0
本例效果图:


unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);
const
  n = 50;
var
  Rgn: HRGN;
  x1,y1,x2,y2: Integer;
begin
  x1 := n;
  y1 := n div 2;
  x2 := ClientWidth - n;
  y2 := ClientHeight - n;

  {建立矩形区域}
  Rgn := CreateRectRgn(x1, y1, x2, y2);
  //Rgn := CreateRectRgnIndirect(Rect(x1, y1, x2, y2)); {目的同上一行, 只是参数要一个矩形结构}

  {填充区域}
  Canvas.Brush.Color := clSilver;
  Canvas.Brush.Style := bsCross;
  FillRgn(Canvas.Handle, Rgn, Canvas.Brush.Handle);

  {绘制区域边界}
  Canvas.Brush.Color := clRed;
  Canvas.Brush.Style := bsSolid;
  FrameRgn(Canvas.Handle, Rgn, Canvas.Brush.Handle, 2, 2);

  DeleteObject(Rgn);
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/05/26/1207668.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
桌面精灵制作解析

最近一直在做一个涉及到很多Windows Region区域处理的项目,在开展的过程中,另我想起了几年前看到的一篇讲制作桌面精灵的文章([url]http://www.vckbase.com/vckbase/vckbase12/vc/nonctrls...

余二五
2017/11/16
0
0
ExcludeClipRect和无闪烁图像

Chapter I: ExcludeClipRect在一个剪切区域排除一个矩形,导致绘制该剪切区域时,不绘制该矩形. ExcludeClipRect函数详情请参考MSDN,这个函数用于排除一个区域的一部分,常用于绘制图画,例如,在...

技术小甜
2017/11/08
0
0
WIN32_API函数大全

Windows API函数大全 API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCa...

姿势喵
2018/02/06
0
0
CDC绘图总结

GDI总结:http://dingchaoqun12.blog.163.com/blog/static/11606250420112213396361/ 对话框 控件 视图类 应用程序框架都会调用该CWnd的消息响应成员函数(的覆盖)来绘制窗口客户区。 在Win...

长平狐
2012/10/08
2.4K
0
MFC函数大全

API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一...

姿势喵
2018/02/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

LIst的逆向遍历

public class list_demo { public static void main(String[] args) {// TODO Auto-generated method stub List list=new ArrayList<>(); list.add("a"); list.add("b");......

南桥北木
25分钟前
1
0
Linux下端口转发工具rinetd介绍

linux下简单好用的工具rinetd,实现端口映射/转发/重定向,针对TCP协议,不支持UDP。 官网地址 http://www.boutell.com/rinetd 里面介绍及使用齐全。 使用场景举例: 阿里云内网Redis连接问题...

ouhoo
38分钟前
4
0
Oracle学习日志-5(算数运算符,比较运算符和逻辑运算符)

因为有编程基础,所以对于这一章还是很好理解,只需要注意对NULL的运算。 操作的表格 算数运算符 查询商品名字和商品售价,并商品售价乘2 SELECT product_name,sale_price * 2 AS "sale_pri...

白话
50分钟前
1
0
搜索引擎(Lucene介绍、分词器详解)

Lucene介绍 Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包。提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简...

这很耳东先生
55分钟前
4
0
quartz详细介绍

quartz常用api Scheduler 调度程序交互的主要API。 Job 希望由调度程序执行的组件实现的接口。 JobDetail 用于定义作业的实例。 JobDataMap 可以包含不限量的序列化数据,在job运行的时候可以...

大笨象会跳舞吧
55分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部