一个HomeWork的单文档MFC工作空间,新建了一个继承CWnd的CNew类,
在CNew中
重写void CNew::OnPaint()
{
CPaintDC dc(this);
dc.MoveTo(0,0);
dc.LineTo(300,300);
}
定义 void CNew::Clear()
{ InvalidateRect(NULL,TRUE); }
然后新增一个菜单项Clear,添加菜单命令相应函数
void CHomeWorkView::OnCLear()
{
new.Clear();//new 已经定义成CHomeWork的成员变量
}
出现这种错误:
_AFXWIN_INLINE void CWnd::InvalidateRect(LPCRECT lpRect, BOOL bErase)
{ ASSERT(::IsWindow(m_hWnd)); ::InvalidateRect(m_hWnd, lpRect, bErase); }
求大神帮帮忙,我在百度上搜了很久了,没找到解决方案,有一个方案是这样的
---------------->>>我遇到的情况是,A类的Clear函数中调用了this->Invalidate();,而B类调用了A类的Clear函数,此时A类还未实例化,所以A类句柄为空,m_hWnd = NULL。我的解决方法是将A类的实例化放在B类前,问题解决。,<<<--------------
没办法,还是没解决掉,故而来求大神解决了,我才刚刚学MFC