|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"Client領域のない Form ?"
■説明
だから何なのと言われそうですが、 Client 領域の無い Form を表示
させるサンプルです。 ((((^^;;;;;
■注意点
ひょっとすると、トンでもないことをやってしまっているかも知れま
せんので十分ご注意下さい。((^^;)
拙いところがありましたらご指摘下さい。> ALL。m(_"_)m
■参考
FDELPHI/MES/16/457 からのツリー。m(_"_)m
■サンプルコード
//=====================================================================
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormDestroy(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private 宣言 }
procedure MakeWinRGN;//←※追加して下さい
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
WinRect, ClntRect : TRect;
WindowRGN, ClientRGN : HRGN;
//-- WindowRegion 作成 ------------------------------------------------
procedure TForm1.MakeWinRGN;
begin
if WindowRGN <> 0 then
begin
SetWindowRgn( Handle, 0, False );
DeleteObject( WindowRGN );
end;
with WinRect do begin
TopLeft := Point( 0, 0 );
BottomRight := Point( Width, Height );
end;
ClntRect := ClientRect;
OffSetRect( ClntRect, ClientOrigin.x - Left, ClientOrigin.y - Top );
(* ウインドウ全体のリージョンを作成 *)
WindowRGN := CreateRectRgnIndirect( WinRect );
(* クライアント領域のリージョンを作成 *)
ClientRGN := CreateRectRgnIndirect( ClntRect );
(* クライアント領域を除いた部分のリージョンを作成 *)
CombineRgn( WindowRGN, WindowRGN, ClientRGN, RGN_DIFF );
DeleteObject( ClientRGN ); //~~~~~~~~API Help 参照
(* ウインドウのリージョンを設定する *)
SetWindowRgn( Handle, WindowRGN, TRUE );
end;
//-- OnCreate ---------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
WindowRGN := 0;
MakeWinRGN;
end;
//-- OnDestroy --------------------------------------------------------
procedure TForm1.FormDestroy(Sender: TObject);
begin
if WindowRGN <> 0 then DeleteObject( WindowRGN );
end;
//-- OnResize ---------------------------------------------------------
procedure TForm1.FormResize(Sender: TObject);
begin
MakeWinRGN;
end;
end.
//=====================================================================
98/03/22(日) 02:15 Fermion(KHF03264)
Original document by Fermion 氏 ID:(KHF03264)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|