在画布上画一条自定义样式(delphi)
发布时间:2020-12-15 04:32:04 所属栏目:大数据 来源:网络整理
导读:我需要在画布上绘制一些线条,但是我需要使用自定义样式,没有标准样式作为实体,点,… 例如,我需要画一条线作为“__.__._”或“._._._._”.我所有的线都是破折号和点的组合,我需要设置短划线和破折号,点宽. 我不想使用GDI或其他外部库… 有一个简单的方法吗?
我需要在画布上绘制一些线条,但是我需要使用自定义样式,没有标准样式作为实体,点,…
例如,我需要画一条线作为“__.__._”或“._._._._”.我所有的线都是破折号和点的组合,我需要设置短划线和破折号,点宽. 我不想使用GDI或其他外部库… 有一个简单的方法吗? 解决方法
您可以使用普通GDI执行此操作:
procedure TForm1.FormPaint(Sender: TObject); const pattern: array[0..3] of cardinal = (10,1,1); var lb: TLogBrush; pen,oldpen: HPEN; begin lb.lbStyle := BS_SOLID; lb.lbColor := RGB(255,0); pen := ExtCreatePen(PS_COSMETIC or PS_USERSTYLE,lb,length(pattern),@pattern); if pen <> 0 then try oldpen := SelectObject(Canvas.Handle,pen); Canvas.MoveTo(0,0); Canvas.LineTo(ClientWidth,ClientHeight); SelectObject(Canvas.Handle,oldpen); finally DeleteObject(pen); end; end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |