角の丸いフォームを作成する



サンプルを実行するとForm1が下記の図のようになります。



■使用するAPI関数

■その他


■ソースは下記のようになります。

Form1を円形にしてマウスで操作できるようにする処理
var
Ret : Integer; //領域のハンドル

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
begin

 //マウス左ボタンが押されているとき
 If ssLeft in Shift then
 begin

  //マウスキャプチャを解放する
  ReleaseCapture;
  //Form1をドラッグせよという命令を送る
  SendMessage(Form1.Handle, WM_NCLBUTTONDOWN, HTCAPTION,0);

 end;

 //マウス右ボタンが押されているとき
 If ssRight in Shift then
 begin

  //オブジェクトを削除する
  DeleteObject(Ret) ;
  //終了
  Close;

 end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Form1.Width :=200;
 Form1.Height :=200;


 //円形のリージョン(領域)を作成する
 Ret := CreateEllipticRgn(0, 0, Width,Height);
 //ウインドウの描画領域を設定する
 SetWindowRgn(Handle, ret, True);

end;




Win32APIのページへ



ホーム PV ランキング