MFC(二)改变线条属性

1.改变画笔的颜色、宽度、粗细

在ONdraw里面写入

void CMFCpaintView::OnDraw(CDC* pdc)
{
    CPen pen (PS_DASH , 1,RGB ( 100, 0, 0 ) );
]

我们查看Cpen定义,发现它的普通构造函数有三个参数,于是我们构造了这样的一个对象,PS_DASH表示虚线,1表示粗细,RGB表示颜色

2.选择这个画笔

CPen *poldpen=pdc->SelectObject(&pen);
TRACE("style=%d,color=%08X,width-%d\r\n", logpen.lopnStyle,
		    logpen.lopnColor, logpen.lopnWidth);

这个函数会将之前的画笔返回,我们用poldpen保留,因为在这个程序用完这个画笔,不能影响其他程序的绘制,另外我们可以打印poldpen,打印结果为

style = 0, color = 00000000, width - 0

表示它是原始黑色的画笔,width为0就是说它显示粗细为1

运行后,发现画笔还是有点细,我们把粗细增加到50,发现它不是虚线了,这是因为线条太粗会掩饰线型,只有为1时,线型才会起作用,才能看出它时虚线,即线型超过1时,就会失去作用

3.为了使它更粗,我们采用双线绘制

CPoint start = m_start; CPoint cur = m_cur;
	start.y--; cur.y--;
	if (m_status)
	{
		pdc->MoveTo (m_start);
		pdc->LineTo (m_cur);
		pdc->MoveTo (start);
		pdc->LineTo (cur);
	}
	else
	{
		cur = m_stop;
		cur.y--;
		pdc->MoveTo (m_start);
		pdc->LineTo (m_stop);
		pdc->MoveTo (start);
		pdc->LineTo (cur);
	}

我们画两条线,第二条线是第一条Y坐标-1,但是在垂直方向还是只有一条,这里值得改进,但是我不会

4.在最后,将画笔设置为原来的画笔

pdc->SelectObject(poldpen);

 5.设置画刷

5.1定义两个画刷,并选择它

CBrush brush(RGB(255, 0, 0)), brush2(RGB(0, 255, 0));
CBrush *poldbru = pdc->SelectObject(&brush);

5.2填满这个矩形区域

pdc->FillRect(CRect(m_start, m_cur), &brush);

FILLRECT表示绘制一个矩形,CRect函数里的两个点分别作为矩形的左上角和右下角,创建一个表示矩形区域,第二个参数表示画刷,第二个参数如果为null,就是上下文的画刷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值