投稿時間:2003/03/10(Mon) 16:18 投稿者名:これ
URL :
タイトル:Re: フォームの一体化
> よくアプリケーションで見かけるものなんですが、例えばVBのツールボックスや > プロジェクトエクスプローラーみたいに可変ツールウインドウのようなサイズ・位置 > 変更可能なフォームで、親フォームの枠の近くに移動すると親フォームと一体化するような > ものを作成したいのですが、どのコントロールを使えばよいのか教えて下さい。 > ひょっとして、通常のフォームの何か設定でできるのもなんでしょうか? > お願いします。 こんにちは。 そのようなコントロールは無いと思います。 PictureBoxとSetParent APIを使った簡単なドッキングは こちらにサンプルがありますので参考にされてはいかがでしょう? 私はこのサンプルを参考に作りました。 み〜くんパパの仕事部屋 http://www.mitene.or.jp/~sugisita/family/papa/vb/ VBサンプル.クラス ->Windowsコモンコントロール -->ツールバーコントロール --->ドッキングツールバー
ドラッグによるドッキングを実現されたいなら たぶん、以下のような手順が必要だと思います。 申し訳ないですが、実行経験はありませんので詳細については不明です。 間違いや、他に簡単な方法があるかもしれません。
サブクラス化を行って、子フォームのタイトルバーの 移動メッセージをつかんでカーソルの位置がドッキング予定の PictureBoxの位置(+有効範囲)にきたら、PictureBoxのサイズ変更 SetParent APIで子フォームの親ウィンドウをPictureBoxに変更しドッキング。 (このままだとPictureBoxの中で子フォームが動いてしまうはずなので) 以降のキャプションの移動メッセージの握りつぶし指定等を行う必要が あると思います。 同時にタイトルバーを消してしまえばそんなことはないはずですが。 ドッキング解除は子フォームのドラッグで、カーソルがPictureBoxの 有効範囲外にきたらSetParentで親ウィンドウの解除等 ドッキングの逆の操作が必要になってくると思います。
もし、ドラッグでのドッキングが実現できたら 是非、その手順を教えてくださいね。
|