现在我用
CClientDC dc(this);
FrameRect(dc.GetSafeHdc(), &rect, hBrush1);FillRect(dc.GetSafeHdc(), &rcIcon, hBrush);
反复调用多次,运行一段时间后就会报出
 m_hDC==NULL
的异常,是怎么回事?

解决方案 »

  1.   

    刚才查出来,如果用 cleverwyq(此人三无)的方法,是以下地方出的错:
    CRgn::CombineRgn(CRgn* pRgn1, CRgn* pRgn2, int nCombineMode)
     ASSERT(m_hObject != NULL);
    m_hObject现在成NULL了
      

  2.   

    程序里就这两句么,是不是有些gdi资源没有释放啊比如create 后调用xxx.deleteobject了没
      

  3.   

    刷子调用了这个:
    hBrush3->CreateSolidBrush(GetBkColor() & 0x000000FF);
    没有delete
    但是这个能导致其他对象成NULL么?
      

  4.   

    When an application finishes using the brush created by CreateSolidBrush, it should select the brush out of the device context.可能因为都是gdi资源,呵呵
      

  5.   

    多谢 cleverwyq(此人三无)  ,经过在Create里创建刷子,在析构时释放资源后,这种问题经过20分钟测试没有出现!