Ccurwin mycurwin;
...
void Ccurwin::OnPaint()                 //在Ccurwin类中定义的消息响应函数onpaint用来划线
{
CPaintDC dc(this); 
        ...
}
...
mycurwin.m_black.ShowWindow(SW_SHOW);   //m_black是关联一个pic的关联变量这个showwindow()是在其他的类中先于OnPaint()调用的,也就是说是由于调用showwindow()而激发的窗口的重绘才调用的onpaint()
我理解的顺序是:程序mycurwin.m_black.ShowWindow(SW_SHOW)在执行到一半的某个时候就引起了窗口的重绘,最后才showwindow,也就是说onpaint发生在mycurwin.m_black.ShowWindow(SW_SHOW)开始之后、结束之前。不知道我理解的对不对。   

解决方案 »

  1.   

    不是,是执行完showwindow()才激发的onpaint(),showwindow只是pose了一个message
      

  2.   

    mycurwin.m_black.ShowWindow(SW_SHOW)在执行到一半的某个时候就引起了窗口的重绘,最后才showwindow,也就是说onpaint发生在mycurwin.m_black.ShowWindow(SW_SHOW)开始之后、结束之前。不
    =============================
    不是的,不要忘了,你的程序是单线程的,怎么可能会你上面所说情况发生呢?ShowWindow在完成后产生WM_PAINT,而WM_PAINT才会调用OnPaint