我要响应方向键消息,没移动一下,将原来位置绘制的直线颜色变为红色,但是绘制的直线并没有变化,想问下怎么处理,
应该是被冲洗掉了。应为方向键快速移动的时候可以看到绘制的直线有红色闪烁。
一下是代码。
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);
问题是在同一个位置绘制直线时,不显示,想问下大神怎么解决。
应该是被冲洗掉了。应为方向键快速移动的时候可以看到绘制的直线有红色闪烁。
一下是代码。
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);
问题是在同一个位置绘制直线时,不显示,想问下大神怎么解决。
解决方案 »
- CPrintingDialog是什么呀在打印中如何用呀
- 想用VC设计类似netmeeting的终端,请高手指点
- check box,combo box这2个控件的值的小问题。答完立刻给分
- 我想我的DLL都封进一个EXE内,当EXE运行时再把DLL释放到系统目录内
- 关于CreateFile中指定LPSECURITY_ATTRIBUTES参数的问题
- 不知道如何delete希望哪位高手指教!~
- createfile/readfile/writefile应用于端口操作时,有什么要注意的?
- 在sql server中怎么才能在调动和关闭时运行指定的存储过程或扩展存储过程
- 求助! CDockablePane 对象建立失败
- VC中单例Dlg的忻构问题
- MFC中的Cfile问题
- DrawBuild1.3 欢迎下载使用。(以前名子叫fkBuild)
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);
}