Эллипсовидное окно



Для начала нужно обеспечить возможность пользователю перемещать окно, хватаясь за клиентскую область, а не за заголовочную, т.к. полосы заголовка, собственно, у нас нет.

Сначала в частных объявлениях (после слова private) объявляем процедуру:


private
procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest;

Затем в разделе implementation описываем её так:


implementation
{$R *.DFM}
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
inherited;
if M.Result = htClient then
M.Result := htCaption;
end;

Далее самое главное. По созданию окна (событие OnCreate) пишем следующий код:


procedure TForm1.FormCreate(Sender: TObject);
var
hsWindowRegion: Integer;
begin
hsWindowRegion := CreateEllipticRgn(50, 50, 350, 200);
SetWindowRgn(Handle, hsWindowRegion, true);
end;


Далее: Включить Drop Shadow Effect окна в XP »»