|
||
解説: 今回の Tips は特に使う必要はありませんが、うまく使うと案外面白いアプリケーションが作れるかもしれません。 何をするか、と言いますと、SetParent 関数を使って起動したフォーム内に電卓を表示してみます。 この関数は、指定したウィンドウの親ウィンドウを変更してくれます。 HWND SetParent( HWND hwndChild, // ウィンドウのハンドル HWND hwndNewParent // 新しい親ウィンドウのハンドル ); 第一引数に電卓のハンドル、第二引数にフォームのハンドルを渡すと、電卓の親がフォームになり、フォーム内に電卓が格納されます。 使用例: 電卓とアプリケーションを起動して、フォームを右クリックします。ポップアップメニューから 「電卓を格納」 を選ぶと、電卓がフォーム内に表示されます。 準備として、PopupMenu をひとつ配置するだけです。 Form1 のPopupMenu プロパティに PopupMenu1 を設定します。 PopupMenu1 には、Calc1 というメニューを作り、Caption を 「電卓を格納」 としておきます。 Calc1 の OnClick イベントハンドラで、電卓のハンドルを FindWindowEx 関数(Tips参照)で取得します。 取得したハンドルを、SetParent 関数に渡します。 これで電卓がフォーム内に表示されるようになります。 SetParent 関数の前には、スコープ(アクセス)解決演算子を付けてあります。VCL の SetParent 関数で隠されている Win32API の SetParent 関数を見えるようにするためです。 //------------------------------------------------------------------- void __fastcall TForm1::Calc1Click(TObject *Sender) { HWND hWnd = FindWindowEx(0, 0, "SciCalc",0); if (hWnd != 0) ::SetParent(hWnd, Handle); } //------------------------------------------------------------------- |