对话框好像不搞OnDraw,你直接处理WM_PAINT消息即可,一般对话框都重载该消息为
CXXXDialog::OnPaint

解决方案 »

  1.   

    就是要让对话框知道它曾经被覆盖过,
    想对话框本身能通过OnPaint()重新绘制出来,
    但自己在picture控件中画的东西,比如说一条直线吧,怎么让它重画一下。
    对于基于视的 就如 new_guy(蓝调刀锋)说的,可以在OnDraw()中实现。
      

  2.   

    获得该控件的指针,然后yourpicture->sendmessage(WM_PAINT)
      

  3.   

    在WM_ERASEBKGND消息中响应(手工加)
      

  4.   

    不知道是大家理解错误还是什么原因,
    大家的建议我都试过,行不通。
    比如说我在一个基于对话框的工程里加了一个窗口,设ID为IDC_WINDOW
    然后有一个CStatic* m_pCWindow
    然后m_pCWindow=(CStatic*)GetDlgItem(IDC_WINDOW);
    m_pCWindow->TextOut(0,0,"xxxxx");
    运行程序以后XXXXX就显示出来了,然后用随便一个窗口比如说IE吧,覆盖在上面,
    然后再击活对话框,但字消失了,我的问题就是说,怎么样才能让对话框再击活时,字显示出来。
    在OnPaint()中即使打印了字,在重画IDC_WINDOW控件时被抹掉了,
    所以也就是说怎么样才能时打印在重画控件后执行。