以对话框为基础的程序,菜单项有一个 ID_DRAW_GRID ,在CMyDialog::OnDrawGrid( )中,用了
{ Crect rect1;
this->GetClientRect(rect1);
this->InvalidRect(rect1,TRUE);
m_mClass->DrawLine( );
}其中 m_mClass 是CMyDialog的一个成员变量,m_mClass->DrawLine( )负责真正的绘图工作,如果不用上面的前三行的话,画的图像就会重叠在一块,但是用了的话,就会全部清除,就连刚画上的也给立刻清除了。从程序的顺序上看,应该是清除后再画的呀?请大侠帮忙!!!
{ Crect rect1;
this->GetClientRect(rect1);
this->InvalidRect(rect1,TRUE);
m_mClass->DrawLine( );
}其中 m_mClass 是CMyDialog的一个成员变量,m_mClass->DrawLine( )负责真正的绘图工作,如果不用上面的前三行的话,画的图像就会重叠在一块,但是用了的话,就会全部清除,就连刚画上的也给立刻清除了。从程序的顺序上看,应该是清除后再画的呀?请大侠帮忙!!!
InvalidateRect(CRect());
把m_mClass->DrawLine( );放到OnDraw里
====================================================
如果像上面的这位大侠说的,倒也可以。
不过我自己的那个类里面有好几个画图的成员函数,如果都放在一个OnDraw( ),显得比较长,有没有其它的办法,让其先画后擦除???