在一个基于对话框的应用程序中,我用如下语名在屏幕上显示文字: CFont font;
CClientDC dc(this);
dc.SetTextColor(RGB(0,255,0));
dc.SetBkMode(TRANSPARENT);
    font.CreateFont(26, 12, 0, 0, FW_NORMAL, false, false, false, DEFAULT_CHARSET, OUT_DEVICE_PRECIS, 
   CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, 
DEFAULT_PITCH, "黑体");
dc.SelectObject(&font);
dc.TextOut(x,y,p);
问题是当窗口遮挡或最小化时,窗口上的文字就不见,如何才能保存窗口上的文字

解决方案 »

  1.   

    你这代码写在哪??放在OnDraw()里面就没事了.
      

  2.   

    在OnDraw里面调用这一段,应就没问题了
      

  3.   

    在OnDraw()或者OnPain()中显示,或者调用Invalidate()重画窗口就可以了。
      

  4.   

    各位老大,是一个基于对话框的程序,没有ONDRAW(),我要在屏幕上不同的区域动态显示文字,也就是每一时刻显示的文字不一样。也不能用INVALIDATE(),那样是对整个屏幕刷新。多多指教
      

  5.   

    OnPain()也没有吗,只要是窗口就应该有一个重绘的函数吧,在window消息函数里找找看吧。
    不想整个窗口重也可以用InvalidateRect(LPCRECT lpRect,BOOL bErase = TRUE);
      

  6.   

    基于对话框的就在OnPaint()中写就可以的阿
      

  7.   

    OnPaint()里
    OnDraw()是文档窗口用的