今天在使用mfc画图,界面在重绘时会出现ASSERT(m_hObject == NULL)中断问题,
出问题的地方是这两个画刷我是在单文档定义成类的成员变量,
public:
//二维绘图
CBrush m_Bkbrush; //二维背景画刷,不能定义成类的成员变量,这样在窗口重绘时会出现Assertion错误
CBrush m_Rulerbrush
问题:定义成类的成员变量的话重绘操作时由于资源没有及时释放掉导致m_hObject != NULL,所以会出现ASSERT(m_hObject == NULL)中断。
解决办法:
void CAeroNetView::DrawCoordinate( CDC *pDC )
{
CBrush m_Bkbrush; //二维背景画刷,不能定义成类的成员变量,这样在窗口重绘时会出现Assertion错误
CBrush m_Rulerbrush( RGB(220,220,220) ); //二维尺度背景画刷
m_Bkbrush.CreateStockObject( LTGRAY_BRUSH );
. . . . . .
}
将画刷定义成函数的局部变量,这样在函数调用结束之后会自动释放资源,这样就不会出现中断问题了。