解决方案 »

  1.   

    代码问题
    打开"afxwin2.inl"
    看 第42 行.
      

  2.   


    ASSERT是抓代码bug的,有ASSERT的话说明代码有质量问题,不应该发布Release版。
      

  3.   

    showwindow时有些变量还没初始化,mfc程序有这种机制,调试起来实在是大好事。
      

  4.   


    楼上的两位真是帮了大忙了,非常感谢!
    我在CView类的初始化代码中设置了几个断点,发现确实是初始化的问题,原来是因为我在构造函数中发送了消息,我把发送消息的语句删了就没问题啦!
    后来又出现了问题:在画图的时候经常会定义一些画刷啊,画笔啊之类的指针,一般我都是这么干的:CPen myPen=new CPen
    然后用完后我就会来一句:delete myPen,发现程序居然会报错!我把这个delete语句删除就没问题了,这是为什么呢?难道不需要释放吗?
    而且我观察到用来申请内存的new貌似和平常的不一样,是紫色的,就像宏定义一样,但我在new上右键又转不到类似宏的定义上去,这又是为什么呢?如图最后一句,new是紫色的,而不像一般的关键字一样
      

  5.   

    CPen  *pPen=new CPen
    pPen->DeleteObject();
    delete pPen,
      

  6.   

    要先把 画笔资源还原成以前那个oldpen然后再删除你new的那个pen
      

  7.   

    额,我上面没写清楚,我把那段代码放上来吧我已经把画笔还原成了原来的oldPen,但是在最后delete oldPen就会报错,只能改成上面那句oldPen=NULL;
      

  8.   

    oldPen 是个"pen"  select 回去后, 表示 还回 , 必须是 存在的!
    你把它delete 掉了就不存在了!所以不要管 pOldPen(不要=0,不要delete) , 他是局部变量 ,出函数就没有了.