RT

解决方案 »

  1.   

    Invalidate
    InvalidateRect()
    等类似的函数都是提供给你“手动”掉OnPaint的
      

  2.   

    你可以发送Invalidate或InvalidRect,再加上UpdateWindow()触发啊
      

  3.   

    调用OnPaint需要知道dc,获取它还不如通知对话框去更新
      

  4.   

    楼主的意思是想 看着窗口的界面在变化是吗?这样的话没有必要自己调用OnPaint函数,按照楼上几位的做法完全可以做到
      

  5.   

    因为 WM_PAINT 消息是由系统触发而不是由应用程序维护的,属于系统内部消息。系统每次只会发送WM_PAINT消息一次,在待更新区域被刷新之前时不会重复发送的。所以应用程序不应手动调用OnPaint()了
      

  6.   

    可以调用的,参考;下载我的“ScrollBitmap.rar”(0)分:
    其中有2句:
    case IDOK:// "Exit"
    m_Ok.SendMessage(WM_PAINT,(WPARAM)dcMem.m_hDC,0);
    prompt="\"Exit\" button has been copied to clipbroad!";
    break;
    case IDC_PICTURE:// m_Pic
    OnMyPaint((WPARAM)dcMem.m_hDC,0);
    prompt="\"CStatic Picture\" has been copied to clipbroad!";
    break;
    //OnMyPaint=OnPaint
      

  7.   

    MSDN上有句话:
    The WM_PAINT message is generated by the system and should not be sent by an application.