您的位置:首页 > 移动开发 > Objective-C

mfc中关于画图操作而导致ASSERT(m_hObject == NULL);中断问题

2015-03-21 17:31 274 查看
今天在使用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 );

. . . . . .

}

将画刷定义成函数的局部变量,这样在函数调用结束之后会自动释放资源,这样就不会出现中断问题了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: