文档章节

GdiPlus[40]: 不该忽略的一些基础结构

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 320
阅读 2
收藏 0

这些基础结构有: TGPSize、TGPSizeF、TGPPoint、TGPPointF、TGPRect、TGPRectF.

它们自身提供了一些方便的功能, 如果早看看的话前面的很多代码能更精简些.

TGPPoint 或 TGPPointF 方便的功能:

1、因为已经重载了 Add、Subtract 运算符, 所以 "点" 可以 + 或 -;
2、可使用 Equals 函数对比是否一致.

var
  Pt1,Pt2,Pt3: TGPPoint;
  b: Boolean;
begin
  Pt1.Initialize(30, 30);
  Pt2.Initialize(20, 20);

  { Add }
  Pt3 := Pt1 + Pt2;
  ShowMessageFmt('%d, %d', [Pt3.X, Pt3.Y]); { 50, 50}

  { Subtract }
  Pt3 := Pt1 - Pt2;
  ShowMessageFmt('%d, %d', [Pt3.X, Pt3.Y]); { 10, 10 }

  { Equals }
  b := Pt1.Equals(TGPPoint.Create(30, 30));
  ShowMessage(BoolToStr(b, True)); { True }
end;

 
 
 
 
 

 

 

  

TGPSize 或 TGPSizeF 在 TGPPoint 的基础上, 增加了一个判断是否为空的 Empty 函数.

var
  Size1, Size2, Size3: TGPSize;
begin
  Size1.Initialize(10, 10);
  Size2.Initialize(10, 10);

  Size3 := Size1 + Size2;
  ShowMessage(BoolToStr(Size3.Empty, True)); { False }

  Size3 := Size1 - Size2;
  ShowMessage(BoolToStr(Size3.Empty, True)); { True }
end;

 
 
 
 
 

 

 

  

TGPRect 和 TGPRectF 的功能更多, 容易忽视的有:

TGPRect.Create(TRect);     //可通过 TRect 建立
Rect.InitializeFromLTRB(); //可根据两个点初始化
Rect.IsEmptyArea;          //可判断矩形区域是否真实存在
Rect.Clone;                //可复制
Rect.Contains();           //可判断是否包含一个点或另一个矩形
Rect.Equals();             //是否相等
Rect.IntersectsWith();     //是否相交
Rect.Inflate();            //改变大小
Rect.Offset();             //移动矩形
Rect.Intersect();          //产生相交的矩形
Rect.Union();              //产生联合的矩形
Rect.Location;             //获取起始点

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2009/12/20/1628473.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
vs 2005 添加GDI配置

在VS2005当中由于自带了GDI+的开发包,所以不需要在安装GDI开发包,这些头文件的位置由VS中的$(WindowsSdkDir)/include自动包含进来了 下午自己添加了好几次,总是出现有报错,,在 stdafx.h...

种地瓜
2015/12/08
85
0
GDI+里面的问题。。。。。。。。。。

error C2248: “Gdiplus::Bitmap::Bitmap”: 无法访问 private 成员(在“Gdiplus::Bitmap”类中声明) 1> c:program filesmicrosoft sdkswindowsv7.0aincludegdiplusheaders.h(630) : 参见“G......

xxdd
2013/10/24
60
0
MFC边框重绘

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 pragma once incl......

江河海流
2016/01/30
509
0
MFC用GDI+动感歌词的制作

源代码:http://download.csdn.net/detail/nuptboyzhb/4219669 源代码: 1. 插入一个对话框的资源,删除默认控件,并为对话框创建一个类,命名为ClyricDlg; 2. 在对话框的头文件中添加GDI+相...

长平狐
2012/10/08
236
0
求助:fedora 14 用wine安装rtx 失败

公司用RTX交流,现在因为学习安装了fedora 14系统,想用RTX,于是装上了WINE1.3,再安装winetricks, 安装库文件winetricks msxml3 gdiplus riched20 riched30 ie6 vcrun6 vcrun2005sp1, 再安...

我勒个去也
2011/11/04
1K
9

没有更多内容

加载失败,请刷新页面

加载更多

一次由HandlerInterceptor进行的深入思考

HandlerInterceptor 是SpringFramework为我们提供的拦截器,一般我们可以用来鉴权或者日志记录等。 它是一个interface,主要方法有: /** * Intercept the execution of a handler. Called...

kipeng300
28分钟前
1
0
cmd中查询mysql表出现中文乱码

问题:在pycharm中正常的fetchall拉取数据,能够正常显示,而在cmd中直接select却出现中文乱码。 解决思路:右键查看cmd命令窗口属性得到,cmd窗口默认编码是gbk(如下图所示),而设置的mys...

fang_faye
54分钟前
2
0
centOS 安装Python3与python2并存

centOS 安装Python3与python2并存 如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环...

MedivhXu
今天
2
0
Spring JdbcTemplate模板模式与回调结合分析

在看Spring的JdbcTemplate的时候,看到其将模板模式和回调模式结合使用的实现,可以精妙的解决很多的问题。详见Spring中涉及的设计模式总结中的关于模板模式和回调模式结合的具分析,本文利用...

宸明
今天
1
0
docker update:更新一个或多个容器的配置

更新容器的配置 docker update:更新一个或多个容器的配置。 具体内容请访问:https://docs.docker.com/engine/reference/commandline/update/#options 语法:docker update [OPTIONS] CONTA...

lwenhao
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部