问题同上,
比如说,我在鼠标左键单击的时候,
CDC *pDC1 = GetDC();
CString str = "hello";
pDC1->TextOut(10,10,str);这样最小化后再恢复就没了

解决方案 »

  1.   

    当然了...你得把这些代码写在WM_PAINT(onpaint)中...
    你可以在左键单击时定一个标志...然后在WM_PAINT检查这个标志以决定是否要绘制...
      

  2.   

    你给程序的CDC定义为全局的,而不是局部的,不然就不能看见了。
      

  3.   

    按MFC应用框架的流程,你应该这样:
    一、在处理鼠标和键盘消息时,修改Document类中的数据。然后调UpdateAllViews更新各个view的显示。
    二、在view的OnDraw函数中,根据Document类的内容在view中绘图输出。
    这样在view需要更新时,就会自动重绘。即使在SDK中,也要把输出的内容放在WM_PAINT的相应函数中,才能保证重绘。
      

  4.   

    要在WM_PAIN相对应的处理中加入根据Document内容重绘功能。否则,就是其它窗口覆盖了你的窗口,也不会不显示的。
      

  5.   

    在OnDraw里进行DC拷贝
    把画过的DC拷过去
      

  6.   

    这是View-Document结构的一个基本问题撒,重绘了咯!
      

  7.   

    在OnDraw()函数中重绘你的窗口。
      

  8.   

    WM_PAINT,WM_ERASEBKGND,这两个消息随便一个处理函数,重画就可以了
      

  9.   

    楼主这个问题是VC++程序调试内存泄漏的一个经典例子,我记得正好是老美书上的一个例子你把CString str 定义Doc类中间,在Doc类的构造函数中初始化为"hello",然后用pDC1->TextOut(10,10,pDoc->str)来写字,就可以解决这个问题。你可以用CMemoryState来检测内存,可以观察到每次执行这个代码之后都会有一定数量的内存泄漏,这就是CString招致的问题。
      

  10.   

    谢谢各位了,实在不好意思问,其实是我学VC的路子不对可能,我刚开始是为了做DLL,以及调用DLL开始的,所以呢学的基本上是基于对话框的,而文档和视图用的少,所以才会......分真的是我一点一点搞的,真的。
      

  11.   

    楼主真是老实人,真的!
    I LOVE YOU!