Главная страница | назад





Article #16235: Using InvalidateRect()to repaint the entire form

 Question and Answer Database

FAQ1235D.txt   Using InvalidateRect()to repaint the entire form
Category   :Windows API
Platform    :All
Product    :All 32 bit  

Question:
When I resize my form, the paint area is clipped, but I need to
repaint the whole area. The form's ClipRect is read only. 
How can I get around this?


Answer:
During the resize event, make a call to the Windows API function
InvalidateRect(). Passing nil as the second parameter will cause
the clipping rect of the form to include the entire client area 
of the form. The third parameter denotes if the background of 
the form should be erased and repainted. Simply calling the 
invalidate method of the form may result in a clipping region 
and possibly the background getting erased.

Example:

procedure TForm1.FormResize(Sender: TObject);
begin
  InvalidateRect(Form1.Handle, nil, false);
end;

7/16/98 4:31:28 PM
 

Last Modified: 01-SEP-99