问一个简单又头疼的问题:Canvas的Pen.Width不为1时,如何画出虚线来?解决后即送100分! 当Canvas.pen.width>1时,Canvas.pen.style不起作用,那么应如何设置线型呢?如果要自己用画点的方式好像太麻烦了,哪位有没有封装好的代码? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个简单的方法就是 自己画几遍。比如 pen.Width:= 2;那么你就自己画两遍相邻的Width为1的。 var lb : LOGBRUSH; lb.lbStyle := BS_SOLID; lb.lbColor := clSilver; lb.lbHatch := 0; Canvas.Pen.Handle := ExtCreatePen( PS_COSMETIC or PS_ALTERNATE, 1, lb, 0, nil );给分吧 Canvas.Pen.Handle := ExtCreatePen( PS_COSMETIC or PS_ALTERNATE, 1, lb, 0, nil );其中,1是pen的宽度,自己调整 另提醒:在WIN9X下以上代码无效---只有自己画了,呵呵 呵呵,疏忽,错了一点:Canvas.Pen.Handle := ExtCreatePen( PS_COSMETIC or PS_ALTERNATE, 1, lb, 0, nil );改为:Canvas.Pen.Handle := ExtCreatePen( PS_GEOMETRIC or PS_DOT, 5, lb, 0, nil );看看效果,呵呵 谢谢flyinwuhan,我试了一下,如果将Pen的宽度设为大于1,还是一样,原来的点线变成了实线,能再指点一下吗? 我的系统是win2000。 那不可能的,我已经试过我的代码了。Canvas.Pen.Handle := ExtCreatePen( PS_GEOMETRIC or PS_DOT, 5, lb, 0, nil );设定Pen的宽度不能用Pen.Width = xxx;而是在上面改写。上面Pen的宽度是5。 其实是可以了,但线型有点怪。我是在自己开发的AC Report中碰到了这一问题,不过我现在是采取自己控制线型的方法,即自己写了一类来实现各种线型,但还是非常谢谢您!如果,有兴趣,请您看看我开发的报表系统,处理线型的代码在AC_Graphic单元中,请从以下地址下载:http://www.efile.com.cn/?syy_tfskyhttp://www.skycn.com/soft/14726.html 阿里云开发者大会,俺去凑热闹有,delphier去哇 提示“没有可用的internet连接” wwDBGrid問題!大家過來幫忙呀! 动态sql语句问题! 打印间距问题? provider cannot be found 大伙帮我解决一下嘛! 报表控件中:QRDBTEXT的长度截取请教!(waiting on line!) VB里面的MSFlexGrid控件在delphi6,7里面怎么用的。我出200分 美女酷图 -----不可不看 Delphi中能否像FoxBase那样使用一个命令将所有已打开的*.dbf或其它数据库关闭? 怎么样用DbExpress下的控件? dbExpress问题??
比如 pen.Width:= 2;那么你就自己画两遍相邻的Width为1的。
lb : LOGBRUSH; lb.lbStyle := BS_SOLID;
lb.lbColor := clSilver;
lb.lbHatch := 0;
Canvas.Pen.Handle := ExtCreatePen( PS_COSMETIC or PS_ALTERNATE, 1, lb, 0, nil );给分吧
其中,1是pen的宽度,自己调整
在WIN9X下以上代码无效---只有自己画了,呵呵
Canvas.Pen.Handle := ExtCreatePen( PS_COSMETIC or PS_ALTERNATE, 1, lb, 0, nil );
改为:
Canvas.Pen.Handle := ExtCreatePen( PS_GEOMETRIC or PS_DOT, 5, lb, 0, nil );
看看效果,呵呵
Canvas.Pen.Handle := ExtCreatePen( PS_GEOMETRIC or PS_DOT, 5, lb, 0, nil );设定Pen的宽度不能用Pen.Width = xxx;而是在上面改写。上面Pen的宽度是5。
http://www.skycn.com/soft/14726.html