我要在一个矩形框中画个矩形,但在画之前我用InvalidateRect()先刷新了一下对话框,但是在我画完矩形之后他才刷新,为什么啊?我要怎么样做才能在画之前先把对话框刷新了一次再画呢?菜鸟,高手请帮忙,谢谢

解决方案 »

  1.   

    InValidateRect会发出一个wm_paint消息,通知窗口重画,这时候并没有所谓的“刷新”
    如果你只是要画2个矩形,没有必要刷新,直接画就行了
      

  2.   

    InValidateRect 只是刷新指定的区域.
      

  3.   

    InvalidateRect函数只是进行了指定区域的刷新,你画之前刷新,你是看不出来的,
    因为刷新的还是原来的界面,等你对该区域重画了,然后再刷新就会看到改变了
      

  4.   

    InvalidateRect向消息队列中投递一个WM_PAINT消息,但是不会马上被处理
    要是想要立即重绘的话,InvalidateRect后加一个UpdateWindow