📄 基于vc_net的gdi+编程入门之画刷 _3.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0048)http://www.qqread.com/vcdotnet/f482126000_3.html -->
<HTML lang=zh xml:lang="zh" xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>基于VC.NET的GDI+编程入门之画刷 - QQread.com 电脑频道</TITLE>
<META http-equiv=Content-Language content=zh-CN>
<META
content=[art_mtkw],电脑入门,上网指南,操作系统,常用软件,黑客与安全,网络游戏,程序开发,数据库开发,网页制作,图像处理,多媒体制作,网络编程,加密技术,网络技术
name=keywords>
<META content=基于VC.NET的GDI+编程入门之画刷 name=description>
<META content=QQRead.com name=author>
<META content=all name=robots>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK
href="基于VC_NET的GDI+编程入门之画刷 _3.files/qqread_html.css" type=text/css
rel=stylesheet><LINK href="基于VC_NET的GDI+编程入门之画刷 _3.files/qqread_html_com.css"
type=text/css rel=stylesheet>
<STYLE type=text/css>.STYLE2 {
FONT-SIZE: 14px
}
</STYLE>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY><!-- 公共页头 -->
<DIV style="TEXT-ALIGN: center">
<DIV id=topad>
<TABLE>
<TBODY>
<TR>
<TD width=10><SPAN
id=ad_qqread_top></SPAN><!--End//--></TD></TR></TBODY></TABLE></DIV>
<DIV id=CHBig>
<DIV id=CHBigCSDNLogo><A href="http://www.qqread.com/"><IMG alt=巧巧读书网
src="基于VC_NET的GDI+编程入门之画刷 _3.files/qqread.gif" border=0></A></DIV>
<DIV id=CHBigHeaderWrapper>
<DIV id=CHBigNavBar2>
<UL>
<LI><A href="http://www.qqread.com/news/" target=_blank>新闻中心</A>|
<LI><A href="http://www.qqread.com/skill/" target=_blank>技巧集锦</A>|
<LI><A href="http://www.qqread.com/itlife/" target=_blank>IT人生雨露</A>|
<LI><A href="http://www.qqread.com/pcbase/" target=_blank>电脑入门</A>|
<LI><A href="http://www.qqread.com/netreference/" target=_blank>上网指南</A>|
<LI><A href="http://www.qqread.com/safe/" target=_blank>黑客与安全</A>|
<LI><A href="http://www.qqread.com/commentsoft/" target=_blank>常用软件</A>|
<LI><A href="http://www.qqread.com/os/" target=_blank>操作系统</A>|
<LI><A href="http://www.qqread.com/netgame/" target=_blank>网络游戏</A><BR>
<LI><A title=图片欣赏 href="http://www.qqread.com/photo/index.html"
target=_blank>图片欣赏</A>|
<LI><A href="http://www.qqread.com/program/" target=_blank>程序开发</A>|
<LI><A href="http://www.qqread.com/database/" target=_blank>数据库开发</A>|
<LI><A href="http://www.qqread.com/webdesign/" target=_blank>网页制作</A>|
<LI><A href="http://www.qqread.com/photohandle/" target=_blank>图像处理</A>|
<LI><A href="http://www.qqread.com/mutimedia/" target=_blank>多媒体制作</A>|
<LI><A href="http://www.qqread.com/netprogram/" target=_blank>网络编程</A>|
<LI><A href="http://www.qqread.com/encrypt/" target=_blank>加密技术</A>|
<LI><A href="http://www.qqread.com/network/" target=_blank>网络技术</A>
</LI></UL></DIV>
<DIV id=CHBigNavBar1></DIV></DIV>
<DIV style="CLEAR: both"></DIV></DIV></DIV><!-- /公共页头 -->
<DIV id=OutBox>
<DIV id=listMainArea>
<DIV id=disclaimer><A href="http://www.qqread.com/">巧巧读书首页</A> > <A
title=程序开发 href="http://www.qqread.com/program/index.html">程序开发</A> > <A
title=.Net技术 href="http://www.qqread.com/dotnet/index.html">.Net技术</A> > <A
title=VC.NET href="http://www.qqread.com/vcdotnet/index.html">VC.NET</A> >
正文</DIV>
<DL class=ReadArticle>
<DT>基于VC.NET的GDI+编程入门之画刷
<DD class=ArticleInfo3>
<SCRIPT src="基于VC_NET的GDI+编程入门之画刷 _3.files/adtitle.js"
type=text/javascript></SCRIPT>
<HR SIZE=2>
<DD class=ArticleInfo3>
<DIV align=center><A href="http://www.qqread.com/">http://www.qqread.com/</A>
作者:刘涛 2005-12-03 来源:天极网 浏览:<SPAN id=count></SPAN> </DIV>
<DD class=ArticleInfo_3>
<DD class=ArticleInfo_3><A
href="http://www.qqread.com/vcdotnet/f482126000_2.html">上一页</A> <A
href="http://www.qqread.com/vcdotnet/f482126000.html">1</A> <A
href="http://www.qqread.com/vcdotnet/f482126000_2.html">2</A> <FONT
color=#ff0000>3</FONT> <A
href="http://www.qqread.com/vcdotnet/f482126000_4.html">4</A> <A
href="http://www.qqread.com/vcdotnet/f482126000_4.html">下一页</A>
<DD class=ArticleContent> (三)纹理画刷<BR><BR> 网格画刷依赖于已经预先<A
href="http://www.baidu.com/baidu?tn=jkday2000&word=设计"
target=_blank>设计</A>的模式来填充图形,在某些情况下,需要设计自己的图案来填充一个图形。要这么做,必须执行两个步骤,首先设计一个图形并存储为一个文件,然后创建一个纹理画刷,并将图案传递给它。<BR><BR> 纹理画刷拥有图案,并且通常使用它来填充封闭的图形。为了对它初始化,可以使用一个已经存在的别人设计好了的图案,或使用常用的设计程序设计的自己的图案,同时应该使图案存储为常用图形<A
href="http://www.qqread.com/keywords/file-format.html"
target=_blank>文件格式</A>,如BMP格式。这里有一个设计好的位图,被存储为Papers.bmp文件。<BR><BR>
<TABLE width="90%" align=center border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG hspace=3
src="基于VC_NET的GDI+编程入门之画刷 _3.files/20051203ig390_4.gif" align=center
vspace=1 border=1
;?><BR>图四、位图效果图</DIV></TD></TR></TBODY></TABLE><BR> 有了图案,这时候就可以使用TextureBrush类,它有多种构造函数,最简单的构造函数只有一个Image对象做为参数,这个构造函数的语法是:<BR><BR>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf
border=1><TBODY>
<TR>
<TD>public: TextureBrush(Image
*bitmap);</TD></TR></TBODY></TABLE><BR> 这个构造函数使用位图作为参数。初始化画刷后,你可以使用它来填充封闭的图形。例如你可以调用Fill...方法。下面是例子:<BR><BR>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf
border=1><TBODY>
<TR>
<TD>private: System::Void Form1_Paint(System::Object * sender,
<BR>System::Windows::Forms::PaintEventArgs * e)<BR>{<BR>Bitmap
*bmpPapers = new Bitmap(S"Papers.bmp");<BR>TextureBrush *brushPapers =
new
TextureBrush(bmpPapers);<BR>e->Graphics->FillRectangle(brushPapers,
5, 5, 430, 280);<BR>}</TD></TR></TBODY></TABLE><BR>
<TABLE width="90%" align=center border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG hspace=3
src="基于VC_NET的GDI+编程入门之画刷 _3.files/20051203ig390_5.gif" align=center
vspace=1 border=1
;?><BR>图五、代码运行效果图</DIV></TD></TR></TBODY></TABLE><BR> 如果使用这个构造函数,编译器自身将对图案的尺寸和位置进行定位,尽管位置必须在(0,0)处,但长和宽必须小于或等于设计的图形尺寸,例如,有一个图案是48x48像素,你使用的图形的宽度和高度必须小于等于48,这样就允许只使用图形的一部分,为此需要使用下面的构造函数:<BR><BR>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf
border=1><TBODY>
<TR>
<TD>public: TextureBrush(Image *bitmap, Rectangle
destination);</TD></TR></TBODY></TABLE><BR> 这个函数的第二个参数规定了图案的尺寸,如果愿意使用十进制的矩形参数,可以使用如下构造函数:<BR><BR>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf
border=1><TBODY>
<TR>
<TD>public: TextureBrush(Image *bitmap, RectangleF
destination);</TD></TR></TBODY></TABLE><BR> 这有一个例子:<BR><BR>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf
border=1><TBODY>
<TR>
<TD>private: System::Void Form1_Paint(System::Object * sender,
<BR>System::Windows::Forms::PaintEventArgs * e)<BR>{<BR>Bitmap
*bmpPapers = new Bitmap(S"Papers.bmp");<BR>TextureBrush *brushPapers =
new TextureBrush(bmpPapers, <BR>new Rectangle(0, 0, 40,
42));<BR>e->Graphics->FillRectangle(brushPapers, 5, 5, 438,
290);<BR>}</TD></TR></TBODY></TABLE><BR>
<TABLE width="90%" align=center border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG hspace=3
src="基于VC_NET的GDI+编程入门之画刷 _3.files/20051203ig390_6.gif" align=center
vspace=1 border=1
;?><BR>图六、代码运行效果图</DIV></TD></TR></TBODY></TABLE><BR> 目前为止我们使用的构造函数都是以平铺的方式在每个定位的矩形内绘制图案。为了更有趣,TextureBrush类提供了一个参数用来指定覆盖模式,可以使用下面的构造函数,<BR><BR>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf
border=1><TBODY>
<TR>
<TD>public: TextureBrush(Image *bitmap, WrapMode wrapMode);<BR>public:
TextureBrush(Image *bitmap, WrapMode wrapMode, Rectangle
destination);<BR>public: TextureBrush(Image *bitmap, WrapMode wrapMode,
RectangleF
destination);</TD></TR></TBODY></TABLE><BR> 位图和尺寸参数与上述含义一样,wrapMode参数是枚举WrapMode的一个成员,枚举WrapMode定义在System::Drawing::Drawing2D名字空间中。<BR><BR> 它有下面的成员:<BR><BR> ·Clamp:在分配的矩形内只绘制一个图案。<BR><BR>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf
border=1><TBODY>
<TR>
<TD>private: System::Void Form1_Paint(System::Object * sender,
<BR>System::Windows::Forms::PaintEventArgs * e)<BR>{<BR>Bitmap
*bmpPapers = new Bitmap(S"Papers.bmp");<BR>TextureBrush *brushPapers =
new TextureBrush(bmpPapers,
WrapMode::Clamp);<BR>e->Graphics->FillRectangle(brushPapers, 5, 5,
438, 290);<BR>}</TD></TR></TBODY></TABLE><BR>
<TABLE width="90%" align=center border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG hspace=3
src="基于VC_NET的GDI+编程入门之画刷 _3.files/20051203ig390_7.gif" align=center
vspace=1 border=1
;?><BR>图七、Clamp方式效果图</DIV></TD></TR></TBODY></TABLE><BR> ·Tile:以平铺方式绘图<BR><BR>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf
border=1><TBODY>
<TR>
<TD>private: System::Void Form1_Paint(System::Object * sender,
<BR>System::Windows::Forms::PaintEventArgs * e)<BR>{<BR>Bitmap
*bmpPapers = new Bitmap(S"Papers.bmp");<BR>TextureBrush *brushPapers =
new TextureBrush(bmpPapers, <BR>WrapMode::Tile, Rectangle(0, 0, 40,
42));<BR>e->Graphics->FillRectangle(brushPapers, 5, 5, 438,
290);<BR>}</TD></TR></TBODY></TABLE><BR>
<TABLE width="90%" align=center border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG hspace=3
src="基于VC_NET的GDI+编程入门之画刷 _3.files/20051203ig390_8.gif" align=center
vspace=1 border=1
;?><BR>图八、Tile方式效果图</DIV></TD></TR></TBODY></TABLE><BR> ·TileFlipX:水平方向交差对称方式<BR><BR>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf
border=1><TBODY>
<TR>
<TD>private: System::Void Form1_Paint(System::Object * sender,
<BR>System::Windows::Forms::PaintEventArgs * e)<BR>{<BR>Bitmap
*bmpPapers = new Bitmap(S"Papers.bmp");<BR>TextureBrush *brushPapers =
new TextureBrush(bmpPapers,
WrapMode::TileFlipX);<BR>e->Graphics->FillRectangle(brushPapers,
5, 5, 430, 290);<BR>}</TD></TR></TBODY></TABLE><BR>
<TABLE width="90%" align=center border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG hspace=3
src="基于VC_NET的GDI+编程入门之画刷 _3.files/20051203ig390_9.gif" align=center
vspace=1 border=1
;?><BR>图九、TileFlipX方式效果图</DIV></TD></TR></TBODY></TABLE><BR> ·TileFlipXY:水平竖直方向均交叉对称<BR><BR>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf
border=1><TBODY>
<TR>
<TD>private: System::Void Form1_Paint(System::Object * sender,
<BR>System::Windows::Forms::PaintEventArgs * e)<BR>{<BR>Bitmap
*bmpPapers = new Bitmap(S"Papers.bmp");<BR>TextureBrush *brushPapers =
new TextureBrush(bmpPapers, <BR>WrapMode.TileFlipXY, Rectangle(0, 0, 42,
42));<BR>e->Graphics->FillRectangle(brushPapers, 5, 5, 412,
244);<BR>}</TD></TR></TBODY></TABLE><BR>
<TABLE width="90%" align=center border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG hspace=3
src="基于VC_NET的GDI+编程入门之画刷 _3.files/20051203ig390_10.gif" align=center
vspace=1 border=1
;?><BR>图十、TileFlipXY方式效果图</DIV></TD></TR></TBODY></TABLE><BR>
<TABLE style="MARGIN: 10px 8px 3px 7px" cellSpacing=0 cellPadding=0 align=left
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -