Jak odświeżyć konkretne okno znając jego uchwyt

0

Witam!

Pisze program który rysuje na oknie obramowanie wzdłuż jego krawędzi. Problem w tym że chciałbym aby to obramowanie mrugało, czyli pojawiało się i znikało na oknie. Napisałem procedurę która rysuje to obramowanie, ale nie potrafię odświeżyć okna w taki sposób, aby je zmazać.

Dodam że F5 nie zdaje egzaminu, ponieważ nie odświeża całego okna.

Z góry dzięki za pomoc.

0

PostMessage(win,WM_NCPAINT,0,0);

0

Niestety nie działa.


Procedure TForm1.Rysuj(hWnd: HWND);
var
  DC : TCanvas;
  Rct : TRect;

begin
  GetWindowRect(hWnd,Rct);

  DC := TCanvas.Create;
  DC.Handle := GetWindowDc(hWnd);

  DC.Brush.Color := clRed;
  DC.FrameRect(Rect(0,0,Rct.Right-Rct.Left,Rct.Bottom-Rct.Top));
  DC.FrameRect(Rect(1,1,Rct.Right-Rct.Left-1,Rct.Bottom-Rct.Top-1));

  DC.Free;

  Sleep(500);
  PostMessage(hWnd,WM_NCPAINT,0,0);

end;

Procedurke tą umieszczam w

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Rysuj(WindowFromPoint(Mouse.CursorPos));
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1