,VC.net   工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛,VC.net
您的位置:软件 > 开发者网络 > 微软开发专栏 > Visual Studio.net专栏 > VC.net > 正文
基于VC.NET的GDI+编程入门之画刷
[文章信息]
作者:刘涛
时间:2005-04-19
出处:天极网
责任编辑:方舟
[文章导读]
基于线条的、封闭的图形需要画笔来表现,封闭的形状的典型的特点在于它可以用图形、颜色或模式来填充
advertisement
热点推荐
· VB实现SQL Server 2000存储过程调用
· Java解析网络数据流的三种特殊方法
· 多媒体教程:网页表单文本域类型
· 体验V5E地形编辑:整体控制
· 打造完美可随意安装的WinXP镜像
[正文]

上一页  1 2 3 4  下一页

  (二)网格画刷

  网格画刷根据已画或已设计的模式来设置它的填充类型。为了支持网格画刷,.NET框架提供了画刷可以使用的各种模式,这些预先设计的模式对应于网格画刷的类型。这意味着在使用网格画刷时,必须在可用的各种类型中选择想要使用的模式,为了使填充区域更生动,还需要说明所使用的颜色。

  为了获取一个网格画刷,可以使用HatchBrush类,它的其中一个构造函数使用以下语法:

public: HatchBrush(HatchStyle style, Color foreColor);

  参数foreColor是用来绘制模式的颜色,style参数是想使用的网格类型,一些可用的类型是:

private: System::Void Form1_Paint(System::Object * sender,
System::Windows::Forms::PaintEventArgs * e)
{
using namespace System::Drawing::Drawing2D;
HatchBrush *brushBackDiag = new HatchBrush(HatchStyle::BackwardDiagonal,
Color::FromArgb(0, 0, 255));
HatchBrush *brushCross = new HatchBrush(HatchStyle::Cross,
Color::FromArgb(200, 0, 0));
HatchBrush *brushDarkDown =
new HatchBrush(HatchStyle::DarkDownwardDiagonal, Color::Salmon);
HatchBrush *brushDarkHorz = new HatchBrush(HatchStyle::DarkHorizontal,
Color::Navy);
HatchBrush *brushDarkUpDiag = new HatchBrush(HatchStyle::DarkUpwardDiagonal,
Color::Pink);
HatchBrush *brushVertical = new HatchBrush(HatchStyle::DarkVertical,
Color::FromArgb(255, 0, 255));
HatchBrush *brushDashDnDiag = new HatchBrush(
HatchStyle::DashedDownwardDiagonal, Color::FromArgb(255, 128, 0));
HatchBrush *brushDashHorz = new HatchBrush(HatchStyle::DashedHorizontal,
Color::FromArgb(0, 128, 192));
HatchBrush *brushDashUpDiag = new
HatchBrush(HatchStyle::DashedUpwardDiagonal, Color::Green);
HatchBrush *brushDashVert = new HatchBrush(HatchStyle::DashedVertical,
Color::Firebrick);
HatchBrush *brushDiagBrisk = new HatchBrush(HatchStyle::DiagonalBrick,
Color::Fuchsia);
HatchBrush *brushDiagCross = new HatchBrush(HatchStyle::DiagonalCross,
Color::Moccasin);
HatchBrush *brushDivot = new HatchBrush(HatchStyle::Divot,
Color::Goldenrod);
HatchBrush *brushDotDiamond = new HatchBrush(HatchStyle::DottedDiamond,
Color::Gainsboro);
HatchBrush *brushDottedGrid = new HatchBrush(HatchStyle::DottedGrid,
Color::Khaki);
HatchBrush *brushForDiag = new HatchBrush(HatchStyle::ForwardDiagonal,
Color::Maroon);
HatchBrush *brushHorz = new HatchBrush(HatchStyle::Horizontal,
Color::Red);
HatchBrush *brushHorzBrick = new HatchBrush(HatchStyle::HorizontalBrick,
Color::SaddleBrown);
HatchBrush *brushLgChkBoard = new HatchBrush(HatchStyle::LargeCheckerBoard,
Color::RoyalBlue);
HatchBrush *brushLgConfetti = new HatchBrush(HatchStyle::LargeConfetti,
Color::MistyRose);
HatchBrush *brushLgGrid = new HatchBrush(HatchStyle::LargeGrid,
Color::Purple);
HatchBrush *brushLtDnDiag = new HatchBrush(
HatchStyle::LightDownwardDiagonal, Color::DarkCyan);
HatchBrush *brushLtHorz = new HatchBrush(HatchStyle::LightHorizontal,
Color::PowderBlue);
HatchBrush *brushUpDiag = new HatchBrush(
HatchStyle::LightUpwardDiagonal, Color::SeaGreen);
HatchBrush *brushLtVert = new HatchBrush(HatchStyle::LightVertical,
Color::Olive);
e->Graphics->FillRectangle(brushBackDiag, 20, 20, 80, 60);
e->Graphics->FillRectangle(brushCross, 120, 20, 80, 60);
e->Graphics->FillRectangle(brushDarkDown, 220, 20, 80, 60);
e->Graphics->FillRectangle(brushDarkHorz, 320, 20, 80, 60);
e->Graphics->FillRectangle(brushDarkUpDiag, 420, 20, 80, 60);

e->Graphics->FillRectangle(brushVertical, 20, 100, 80, 60);
e->Graphics->FillRectangle(brushDashDnDiag, 120, 100, 80, 60);
e->Graphics->FillRectangle(brushDashHorz, 220, 100, 80, 60);
e->Graphics->FillRectangle(brushDashUpDiag, 320, 100, 80, 60);
e->Graphics->FillRectangle(brushDashVert, 420, 100, 80, 60);

e->Graphics->FillRectangle(brushDashVert, 20, 180, 80, 60);
e->Graphics->FillRectangle(brushDiagBrisk, 120, 180, 80, 60);
e->Graphics->FillRectangle(brushDiagCross, 220, 180, 80, 60);
e->Graphics->FillRectangle(brushDivot, 320, 180, 80, 60);
e->Graphics->FillRectangle(brushDotDiamond, 420, 180, 80, 60);

e->Graphics->FillRectangle(brushDottedGrid, 20, 260, 80, 60);
e->Graphics->FillRectangle(brushForDiag, 120, 260, 80, 60);
e->Graphics->FillRectangle(brushHorz, 220, 260, 80, 60);
e->Graphics->FillRectangle(brushHorzBrick, 320, 260, 80, 60);
e->Graphics->FillRectangle(brushLgChkBoard, 420, 260, 80, 60);

e->Graphics->FillRectangle(brushLgGrid, 20, 340, 80, 60);
e->Graphics->FillRectangle(brushLtDnDiag, 120, 340, 80, 60);
e->Graphics->FillRectangle(brushLtHorz, 220, 340, 80, 60);
e->Graphics->FillRectangle(brushUpDiag, 320, 340, 80, 60);
e->Graphics->FillRectangle(brushLtVert, 420, 340, 80, 60);
}


图三、各种网络格画刷效果图

  如果使用上面的构造函数来填充一个图形,选择的模式将绘制在黑色背景上,如果想使用不同的背景,使用下面的构造函数来初始化画刷。

public: HatchBrush(HatchStyle hatchstyle, Color foreColor, Color backColor);

  参数backColor是将用于背景的颜色。

  任何时候,为了得到绘制模式的颜色,可以操作画刷的ForegroundColor属性;为了了解背景颜色,可以操作画刷的BackgroundColor属性;为了知道当前画刷的类型,可以操作它的HatchStyle类型。


上一页  1 2 3 4  下一页

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
,VC.net相关内容,VC.net焦点新闻
  • VC++2005快速构建安全的应用程序
  • 完美的C++:C++/CLI
  • 体验Visual Studio 2005中C++语言
  • 超越C++:下一代C++——C++/CLI简介
  • Visual C++ 2005中混合代码的初始化
  • FVD刺激高清碟机加速商业化 抢占商机最重要
  • 3家搜索引擎集体诉讼8848 吕春维未敢出席
  • 杨元庆:没有准备不会获批的备用方案
  • 军队信息化诞生新领域 电子军务呼之欲出
  • 世界经济论坛公布信息化程度全球最新排名
  • 2004政务绩效评估:政府门户尚处于发展阶段
  • 甲骨文出资5.15亿美元 意图收购RetekInc
  • 技术并购:帮你突破传统增长的“天花板”
  • ,VC.netAdvertisement