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

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

根据测试发现,CDC中的PS_DOT类型宽度为1的CPen画的是三个像素的点后隔三个像素再画三个点,不是我要求的这种线条。
...全文
189 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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完成。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧