我要回應方向鍵訊息,沒移動一下,將原來位置繪制的直線顏色變為紅色,但是繪制的直線并沒有變化,想問下怎么處理,
應該是被沖洗掉了。應為方向鍵快速移動的時候可以看到繪制的直線有紅色閃爍。
一下是代碼。
Pen penBlack(Color::Black,1);
Pen penRed(Color::Red,1);
if (m_ptHead.X != 0 && m_ptHead.Y != 0 && m_ptTail.X != 0 && m_ptTail.Y != 0)
{
graphics.DrawLine(&penRed, m_ptHead, m_ptTail);
}
if (m_ptHeadPre.X != 0 && m_ptHeadPre.Y != 0 && m_ptTailPre.X != 0 && m_ptTailPre.Y != 0)
{
graphics.DrawLine(&penBlack, m_ptHead, m_ptTail);
}
m_ptHeadPre和m_ptTailPre是前一條直線的坐標,主要是繪制之后,將前一條直線恢復為黑色。
以下是繪制線的繪制代碼。
m_DrawDataLine.SetDrawPos(pt1, pt2, m_ptHCHeadPre, m_ptHCTailPre);
m_ptHCHeadPre = pt1;
m_ptHCTailPre = pt2;
m_DrawDataLine.DrawDataLine(*m_pGraphics);
問題是在同一個位置繪制直線時,不顯示,想問下大神怎么解決。
uj5u.com熱心網友回復:
為什么不用D2D呢,完全支持硬體加速。GDI+完全不支持硬體加速,還不如GDI....uj5u.com熱心網友回復:
Pen penBlack(Color::Black,1);
Pen penRed(Color::Red,1);
if (m_ptHead.X != 0 && m_ptHead.Y != 0 && m_ptTail.X != 0 && m_ptTail.Y != 0)
{
graphics.DrawLine(&penRed, m_ptHead, m_ptTail);
}
else //←加這句?
if (m_ptHeadPre.X != 0 && m_ptHeadPre.Y != 0 && m_ptTailPre.X != 0 && m_ptTailPre.Y != 0)
{
graphics.DrawLine(&penBlack, m_ptHead, m_ptTail);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/142563.html
標籤:基礎類
上一篇:vc++ 6.0問題
