MFC界面刷新问题
一个画图程序,问题是这样的:
我再CDrawEditorDoc中加了一个变量 CTypedPtrArray<CObArray, CMyobj *> m_arr;并在每画完图时把图存进m_arr中,在OnDraw()显示,OnDraw()函数如下:
void CDrawEditorView::OnDraw(CDC* pDC)
{
CDrawEditorDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
for (int i=0; i<pDoc->m_arr.GetSize(); i++)
pDoc->m_arr[i]->Draw(pDC);
switch (Curshape)
{
case Rshape :
{
pDC->Rectangle(m_pnts.x,m_pnts.y,m_pnte.x,m_pnte.y);
}
break;
case Lshape:
{
pDC->MoveTo(m_pnts);
pDC->LineTo(m_pnte);
}
break;
case Rdshape:
pDC->Ellipse(m_pnts.x,m_pnts.y,m_pnte.x,m_pnte.y);
break;
}
问题就是出现在删除图形那里~~
void CDrawEditorView::OnEditDelete()
{
// TODO: Add your command handler code here
CDrawEditorDoc* pDoc = GetDocument();
pDoc->m_arr.RemoveAt(Chioced,1);
// Invalidate();
RedrawWindow();
}
其中Chioced是我选中的要删除的那个图形在m_arr的序号~~
运行时~通过调试可以知道Chioced的这个图形在m_arr中确实已经删除~~
但在运行界面上却仍然显示有这个图形~~我用Invalidate()和RedrawWindow()函数都不行~~怎么办啊?