VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1002|回复: 8

高手进,vc画点线的一些疑问?

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-2-24 06:30:03 | 显示全部楼层 |阅读模式
我用CPen的PS_DOT类型画出来的点线点太小,而且距离窄,请问如何将点变大些以及如何调整点与点之间的距离。
   通过循环在起始点和终止点画小圆的方法可以解决我的问题,但是这样是不是笨了点,速度是不是特别慢?(我要画很多,几乎是满屏)
   望高手赐教简易办法,尽可能通过gdi提供的函数解决
回复

使用道具 举报

0

主题

3

帖子

53.00

积分

注册会员

Rank: 2

积分
53.00
发表于 2020-2-28 22:05:12 | 显示全部楼层
CPen构造函数第二个参数指定了线宽,你可以增加其值来增大线宽。 可以用LineTo来绘制连续的线。
以下在onPaint函数中调用 :
CPen pen( PS_DOT, 20, RGB(0, 0, 255));
CClient dc(this);
CPen *oldPen=dc.SelectObject(&pen);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SelectObject(&pOldPen);
回复

使用道具 举报

1

主题

11

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-5-11 15:30:01 | 显示全部楼层
//CDialog::OnPaint();
        CPaintDC dc(this);
        LOGBRUSH   lb;  
        lb.lbColor=RGB(255,0,0);  
        lb.lbHatch=HS_CROSS;  
        lb.lbStyle=BS_SOLID;  

        CPen   NewPen(PS_GEOMETRIC|PS_DOT|PS_ENDCAP_SQUARE, 20, &lb, 0, NULL);  
        CPen*  pOldPen = dc.SelectObject(&NewPen);  
        dc.MoveTo(20,20);  
        dc.LineTo(200,200);  
        dc.SelectObject(pOldPen);
回复

使用道具 举报

0

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-5-12 19:30:01 | 显示全部楼层
楼上的方法对,就是使用cpen的第二个构造函数就可以了。使用clientdc画吧?
===============
CClientDC dc(this);
        LOGBRUSH   lb;  
        lb.lbColor=RGB(255,0,0);  
        lb.lbHatch=HS_CROSS;  
        lb.lbStyle=BS_SOLID;  

        CPen   NewPen(PS_GEOMETRIC|PS_DOT|PS_ENDCAP_SQUARE, 20, &lb, 0, NULL);  
        CPen*  pOldPen = dc.SelectObject(&NewPen);  
        dc.MoveTo(20,20);  
        dc.LineTo(200,200);  
        dc.SelectObject(pOldPen);
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-5-23 19:15:01 | 显示全部楼层
谢谢楼上两位,点的大小问题是解决了,可是距离呢?
回复

使用道具 举报

0

主题

21

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-7-6 19:15:01 | 显示全部楼层
那个似乎要改brush,不过不太确定
回复

使用道具 举报

0

主题

10

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-7-7 16:45:01 | 显示全部楼层
距离大了,那你就画点就好了
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-7-16 21:45:01 | 显示全部楼层
你是要画虚线?
回复

使用道具 举报

0

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-7-16 22:15:02 | 显示全部楼层
firehawk85  


   
谢谢楼上两位,点的大小问题是解决了,可是距离呢?

  

=============================
距离与宽度相关啊。你看看MSDN上得啊,当你把20改为10得时候不是间距就变小了么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表