AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > C++

C++ Builder 使用Canvas对象的属性

51自学网 http://www.51zixue.net


(5)取得画笔的位置
当前的绘图位置,也就是画笔开始绘制下一条线的位置称为画笔位置。画笔位置存放在画布的PenPos属性中。画笔位置只影响绘制线,对于形状或文本,可指定所有需要的坐标。要设置画笔位置,调用画布的MoveTo方法。例如,以下代码将画笔位置移到画布的左上角:

注意使用LineTo方法画线同时会把当前位置移到直线的终点。

2.使用画刷
画布的Brush属性控制填充区域的方式,包括形状的内部区域。使用画刷填充区域就是以特定的方法更改大量相邻像素。

画刷有3个可以控制的属性:
· Color属性:更改填充颜色。
· Style属性:更改画刷样式。
· Bitmap属性:使用位图作为画刷模式。
这些属性值决定了画布填充形状或其他区域的方法。缺省时,画刷开始都是白色,实心样式,且没有位图模式。

(1)更改画刷的颜色
画刷的颜色决定画布填充形状所用的颜色。要更改填充颜色,可设置画刷的Color属性值。画刷颜色用来作为文本和绘制线条时的背景色,所以它通常用于设置背景色。可以像设置画笔颜色一样来设置画刷的颜色,可在画刷工具栏中颜色网格的单击事件中设置:


(2)更改画刷样式
画刷样式用于决定画布填充形状所使用的图案。它可以指定画刷颜色和画布中现有的颜色的组合方式。预定义样式包括实心颜色、无色以及各种线条和填充图案。要更改画刷样式,可将其Style属性设为下列预定义值之一:bsSolid、bsClear、bsHorizontal、bsVertical、bsFDiagonal、bsBDiagonal、bsCross或bsDiagCross。

下例通过共享一组共8个画刷样式按钮的单击事件处理程序来设置画刷的样式。先选定所有8个按钮,在对象观察器中设置OnClick事件,事件处理程序名为SetBrushStyle。以下是处理程序的代码:


通过给画刷样式按钮的Tag属性中加入画刷样式常数,上面的事件处理程序代码能进一步被简化为:


(3)设置画刷的Bitmap属性
画刷的Bitmap属性指定画刷用于填充形状或区域时所用的位图图像。下例从文件中加载位图并将其分配给窗体Form1的Canvas对象的画刷



注意画刷不会假定自己拥有通过Bitmap属性分配给它的位图对象的所有权,所以必须在画刷使用期间确保位图对象可用,且必须在使用完后自行释放位图对象。

3.读取和设置像素
注意到每个画布都有一个有索引的Pixel属性,它代表组成画布中图像每个单独的颜色点。它很少需要被直接访问,它仅能方便地运行某些小操作,如搜索或设置像素点的颜色。注意设置和获取单个像素点比以整个区域运行图形操作要慢上千倍。所以不要使用Pixel数组属
性来访问图形像素。若要高速访问图像像素可见TBitmap::ScanLine属性。

 
 

上一篇:C++ Builder 使用Canvas的方法来绘制图形对象  下一篇:将无声的视频剪辑加入应用程序