|
||
解説: Windows はシステムやユーザー、ウィンドウに対して様々なメッセージをやり取りしています。 今回は、システムやユーザーがウィンドウに対して送るメッセージの中から簡単なところで、"閉じる"を扱ってみます。 VCL では Form1 から起動した Form2 は Form2->Close(); で閉じることができます。 同じ動作は VCL の TControl メソッド Perform でも実現可能です。このメソッドは、メッセージをコントロールのウィンドウプロシージャへ直接送ることができます。 "閉じる"で使うメッセージには WM_CLOSE を使います。 WM_CLOSE はウィンドウを閉じたい時に、 システムやユーザーがウィンドウに対して送るメッセージで、これによりウィンドウが閉じられます。 使用例: VCL の Perform 関数を使って、Form2 を閉じてみます。 コンポーネントは、 Button を二つ適当に配置してください。 Form2 を作成して、[ファイル|ユニットを使う] から指定しておきます。 Button1 の OnClick イベントで Form2 を表示させ、Button2 の OnClick イベントで閉じています。 同じ動作は、Win32API の SendMessage 関数でも行えます(Tipsを参照してください)。 //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Form2->Show(); } //------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Form2->Perform(WM_CLOSE, 0, 0); } //------------------------------------------------------------------- |