如果要在一个矩形外面画边框,想到了两种办法,请问哪种更有效率?第一种 CBrush brush,*oldbrush;
brush.CreateStockObject(NULL_BRUSH);
oldbrush = pDC->SelectObject(&brush);
pDC->Rectangle(nTarLeft, nTarTop, nTarLeft+nTarWidth, nTarTop+nTarHeight);
pDC->SelectObject(oldbrush);第二种 pDC->MoveTo(nTarLeft, nTarTop);
pDC->LineTo(nTarLeft, nTarTop+nTarHeight);
pDC->LineTo(nTarLeft+nTarWidth, nTarTop+nTarHeight);
pDC->LineTo(nTarLeft+nTarWidth, nTarTop);
pDC->LineTo(nTarLeft, nTarTop);
哪种更有效率?或者你的喜好?还有其他画框的办法吗?
brush.CreateStockObject(NULL_BRUSH);
oldbrush = pDC->SelectObject(&brush);
pDC->Rectangle(nTarLeft, nTarTop, nTarLeft+nTarWidth, nTarTop+nTarHeight);
pDC->SelectObject(oldbrush);第二种 pDC->MoveTo(nTarLeft, nTarTop);
pDC->LineTo(nTarLeft, nTarTop+nTarHeight);
pDC->LineTo(nTarLeft+nTarWidth, nTarTop+nTarHeight);
pDC->LineTo(nTarLeft+nTarWidth, nTarTop);
pDC->LineTo(nTarLeft, nTarTop);
哪种更有效率?或者你的喜好?还有其他画框的办法吗?
第一个不是画边框,是填充矩形。画边框用FrameRect
第二个是画线,FrameRect的内部实现还是画四条线。
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
pDC->FrameRect(CRect(nTarLeft, nTarTop, nTarLeft+nTarWidth, nTarTop+nTarHeight), &brush);