CDC:SetPixel和LineTo的效率问题有哪些?
在程序中需要绘制多条虚线,原本SelectObject了一个虚线画笔,然后用LineTo函数。结果画图效率很低,非常慢。于是把代码改成:
int nY = m_nTopMarginPos;
while (nY < m_nBottomMarginPos)
{
pDC->SetPixel(cali.point.x, nY, m_clrScale);
nY += 2;
}
这样就没问题了。
最近,需要把虚线改成实线,没有想太多,就把nY+=2这句改成nY+=1,结果又是很慢,找了半天,发现问题还出在此处。真是咄咄怪事,试着改成LineTo,又解决了。
只知其然,不知其所以然。
而且,这些线分水平与竖直两种,LineTo与SetPixel在两种情况上的表现也有区别,很想不通埃
本文地址:http://www.45fan.com/bcdm/68540.html