我在一个窗口上放一TScrollBox控件,TScrollBox控件的Align设置为alClient,当移走重叠在窗口的上其它窗口时不会响应OnPaint事件,请问有什么简单的方法使窗口响应OnPaint事件???急!!!

解决方案 »

  1.   

    >当移走重叠在窗口的上其它窗口时不会响应OnPaint事件,请问有什么简单的方法使窗口响应OnPaint事件???應該會才對啊!如果是自己程序中控制, 可用 Form1.Invalidate;如果其它程序要控制, 只能用 sendmessage 發送個 WM_Paint
      

  2.   

    确实没有响应啊,可能是TScrollBox控件完全覆盖了窗口的原因吧。
      

  3.   

    有什么不可理解的?
    Form.OnPaint
    也就是只在窗口需要重画的时候才会触发。
    现在窗口上有其他东西(ScrollBox),当窗口移开的时候,所有的TWinControl都会自动拦截重画的信息,被挡住的控件需要重画,而未被挡住的控件就不需要重画。你放一个Memo或者Panel,设置其大小为充满该FORM,照样也有这个情况。
      

  4.   

    如果你真的打算在OnPaint事件中做,有两种方案:
    1 Application.OnActivate := FormOnPaint;2 用PaintBox.OnPaint
      

  5.   

    windindance(风舞轻扬)
    你怎么不早说呢,害得我重改程序直接在窗口上画,不过还是非常谢谢你,又增长了见识。