怎样用CDC画点状线条,即一个像素大小的点后隔一个像素再画一个像素大小的点?

wanglh 2005-08-12 09:20:48
如题:

根据测试发现,CDC中的PS_DOT类型宽度为1的CPen画的是三个像素的点后隔三个像素再画三个点,不是我要求的这种线条。
...全文
115 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wanglh 2005-08-12
谢谢dirdirdir3(风)的帮助

用下面的代码可以创建满足要求的画笔:

LOGBRUSH lb;
DWORD nPen[2];
CPen pen;

lb.lbStyle = BS_SOLID;
lb.lbColor = m_clr128;
nPen[0] = 0; //这两个参数的设置与msdn中不一致,msdn中说的是一个点的宽度,
nPen[1] = 2; //后面再接一个间隔的宽度,如果这两个值都设为1,不能满足要求
pen.CreatePen(PS_GEOMETRIC | PS_USERSTYLE, 1, &lb, 2, nPen);
回复
dirdirdir3 2005-08-12
然后dc选择这个pen,再画线就可以了。
回复
dirdirdir3 2005-08-12
CPen( int nPenStyle, int nWidth, const LOGBRUSH* pLogBrush, int nStyleCount = 0, const DWORD* lpStyle = NULL );
自己create一个pen,nPenStyle==PS_USERSTYLE,lpstyle自己填写喜欢的格式就可以了。
回复
YanDong_8212 2005-08-12
自己做个Line函数吧,Setpixel完成。
回复
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2005-08-12 09:20
社区公告
暂无公告