读书人

关于画橡皮筋的有关问题

发布时间: 2012-03-21 13:33:15 作者: rapoo

关于画橡皮筋的问题
请各位大侠帮忙,我想在(VC)API中实现橡皮筋画直线或椭圆,而不是在MFC中,请求写那个代码,和SetROP2()的作用和用法。。万分感谢。。。。

[解决办法]
OnMouseMove

//画框
CClientDC dc(this);
dc.SelectObject(GetStockObject(NULL_BRUSH));
CPen penRed(PS_SOLID,1,RGB(255,0,0));
if(pDoc->m_bDraw && pDoc->m_startPt.x>0 && pDoc->m_startPt.y>0 && !(pDoc->m_iHitValue>0) )
{


CPen *oldPen=dc.SelectObject(&penRed);
int oldS;
oldS=dc.SetROP2(R2_NOTXORPEN);
CRect rect;
rect.left=min(pDoc->m_startPt.x,pDoc->m_endPt.x);
rect.top=min(pDoc->m_startPt.y,pDoc->m_endPt.y);
rect.right=max(pDoc->m_endPt.x,pDoc->m_startPt.x);
rect.bottom=max(pDoc->m_endPt.y,pDoc->m_startPt.y);
// rect.OffsetRect(p);
CRect rectLast=rect;
//dc.Rectangle(rect);
pDoc->m_endPt=point;
rect.left=min(pDoc->m_startPt.x,pDoc->m_endPt.x);
rect.top=min(pDoc->m_startPt.y,pDoc->m_endPt.y);
rect.right=max(pDoc->m_endPt.x,pDoc->m_startPt.x);
rect.bottom=max(pDoc->m_endPt.y,pDoc->m_startPt.y);
// rect.OffsetRect(p);
//dc.Rectangle(rect);
CRect rectCur=rect;
// CBrush b1;
// b1.CreateSolidBrush(RGB(100,100,100));
dc.DrawDragRect(rectCur,CSize(1,1),rectLast,CSize(1,1),NULL,NULL);

dc.SetROP2(oldS);
dc.SelectObject(oldPen);


ReleaseDC(&dc);
}
[解决办法]
友情帮顶,友情帮顶
[解决办法]
这个程序写的这么烦,可以写简单点
[解决办法]
友情帮顶,友情帮顶

读书人网 >VC/MFC

热点推荐