设置复制模式; ARect := Rect(0, 0, Image1.Width, Image1.Height); CopyRect(ARect, Image1.Canvas, ARect); CopyMode := cmSrcCopy; //恢复复制模式; end; end; procedure TForm1.Button3Click(Sender: TObject); var W: Word; begin //在窗口中画一条彩线; for W := 10 to 200 do Canvas.Pixels[W, 10] :=RGB(random(255),random(255),random(255));; end; 灵活使用这些函数及其内部参数会让我们得到意想不到的效果; (二) 画笔 画笔是一个 GDI 对象,定义了绘制直线或轮廓形状的方法.
画笔内部共有五种属性:颜色,句柄,模式,风格和宽度. Color--决定指定直线或轮廓形状的 RGB 颜色。 Handle--指向了窗口画笔对象句柄。 Mode--指定了画笔以何种方式在画布(canvas)上画线,在帮助文档中的该定义是(全部以 pm_开头): type TPenMode =( pmBlack, //总是黑色; pmWhite, //总是白色; pmNop, //颜色不变; pmNot, //画布颜色取反; pmCopy, //颜色属性中指定的画笔颜色; pmNotCopy, //画笔颜色取反; pmMergePenNot, //画笔颜色和画布背景色取反后颜色的结合; pmMaskPenNot, //画笔颜色和画笔背景色取反后颜色共同色的结合; pmMergeNotPen, //画笔颜色取反后和画布背景色的结合; pmMaskNotPen, //画布颜色和画笔颜色取反后颜色共同色的结合; pmMerge, //画笔和画布背景色的结合; pmNotMerge, //画笔颜色和画布背景色的结合; pmMask, //画笔和画布背景色共同色的结合; pmNotMask, //pmMask 取反,画笔和画布背景色共同色的结合; pmXor, //取画笔或画布背景中的任一种颜色; pmNotXor //pmXor 取反,取画笔或画布背景中的任一种颜色; ); Style--则指定了画笔操作的风格,在线
文档中的定义是(全部以 ps_开头): type TPenStyle=( psSolid, //画笔是─── psDash, //画笔是-----psDot, //画笔是...... psDashDot, //画笔是_._._. psDashDotDot, //画笔是_.._.. psCl
ear, //画笔是透明色 psInsideFrame //画笔是实线,但设置大于 1 时会抖动; ); 另外,在 windows.pas 中还有其他扩展的画笔风格定义,只在特殊的支持设备上 才有效,如 PS_ENDCAP_ROUND, PS_JOIN_ROUND 等; Width--指定了待使用画笔的宽度,单位是象素. 和画笔相关的函数有: CreatePen--用指定风格创建画笔; CreatePenIndirect--根据 LOGPEN 数据结构创建一画笔; ExtCreatePen-- 创建带指定风格,宽度和刷子属性的几何画笔; (三)刷子 刷子定义了区域填充的 GDI 对象,刷子是一个 8×8 象素的区域,它可以被绘制在指定的设 备上.刷子不仅可以是纯色的,也可以由不同的位图图案组成. 刷子的属性有位图,颜色,句柄和风格四种: Bitmap--是指定一个外部位图文件来填充指定的区域.如果指定的图象比填充的区域大,
则只有左上角与填充区域等大的部分有效,其余的被自动裁减了. Color--指定了刷子的颜色.当刷子风格为 bsClear 时,该属性无效. Handle--指向指定设备窗口. Style--则指定了当前刷子的填充风格,在线
文档中的定义是(都以 bs_开头): type TBrushStyle=( bsSolid, //填充格式为实体填充 bsClear, //填充格式为透明填充 bsHorizontal, //填充格式为-----bsVertical, // 填充格式为||||| bsFDiagonal, // 填充格式为///// bsBDiagonal, // 填充格式为\\\\\ bsCross, // 填充格式为+++++ bsDiagCross // 填充格式为 xxxxx ); 和刷子有关的 API 函数有: CreateBrushIndirect--根据 LOGBRUSH 创建一刷子; CreateDIBPatternBrushPt--使用设备无关位图来创建刷子,以便指定刷子的模式; CreateHatchBrush--创建一带有阴影模式的刷子,阴影模式为以 HS_开头的常数; CreatePatternBrush--用位图来创建刷子,以便指定刷子的模式; CreateSolidBrush--创建一实体颜色刷子; GetBrushOrgEx--获取指定设备描述表中当前选择刷子的原点; GetSysColorBrush--获取和指定颜色索引相