我在MFC的view类里写了一段代码
CClientDC dc(this);
CPen pen (PS_DASH,1, RGB (255, 0, 0));
dc.SelectObject (&pen);
CDC *pDC=GetDC(); CLine line;
line.m_pt0=m_pt0;
line.m_pt1=m_pt1;
line.MouseMove(pDC,Flag,point);其中CLine是我自己建的类,MouseMove是里面的函数,具体函数如下
void CLine::MouseMove(CDC *pDC, UINT flag, CPoint point)
{
pDC->SetROP2(R2_MERGEPENNOT);
pDC->MoveTo(m_pt0);
pDC->LineTo(m_pt1);
pDC->MoveTo(m_pt0);
pDC->LineTo(point);
m_pt1=point;
}
运行时画笔还是默认的画笔,没有改变线型和颜色什么的
求高手指点
CClientDC dc(this);
CPen pen (PS_DASH,1, RGB (255, 0, 0));
dc.SelectObject (&pen);
CDC *pDC=GetDC(); CLine line;
line.m_pt0=m_pt0;
line.m_pt1=m_pt1;
line.MouseMove(pDC,Flag,point);其中CLine是我自己建的类,MouseMove是里面的函数,具体函数如下
void CLine::MouseMove(CDC *pDC, UINT flag, CPoint point)
{
pDC->SetROP2(R2_MERGEPENNOT);
pDC->MoveTo(m_pt0);
pDC->LineTo(m_pt1);
pDC->MoveTo(m_pt0);
pDC->LineTo(point);
m_pt1=point;
}
运行时画笔还是默认的画笔,没有改变线型和颜色什么的
求高手指点
这里使用的是dcCDC *pDC=GetDC();
line.MouseMove(pDC,Flag,point);
可下面又用的是pDC,不是同一个DC啊,在pDC中你没有设置画笔,当然还是默认的画笔了
那应该怎么改呢
CPen pen (PS_DASH,1, RGB (255, 0, 0));
dc.SelectObject (&pen); CLine line;
line.m_pt0=m_pt0;
line.m_pt1=m_pt1;
line.MouseMove(&dc,Flag,point);改成这样试试
我的MouseMove的参数不能用dc 会报错不过我现在已经解决了 谢谢你了~~