紅'と申します。
VS2008 で C++/CLI か C# を使用してフォーム
アプリケーションを作成することを考えています。
作成するプログラムはあるプログラムで使用する
設定ファイルを編集するためのものです。
ただ、扱う項目数が非常に多いため、関係する
項目同士でグループ分けをして、それぞれを異なる
プログラムに実装する方向で考えています。
ここでユーザーさんから以下のような要望が発生することが
予想されます。
・たくさんのプログラムに分かれていると
わからなくなるから、ひとつにまとめてほしい
これは自分の考えなのですが、それぞれの機能間の
相関が薄い場合は、ひとつのプログラムにはあまり
たくさんの機能を盛り込まずに分割しておいたほうが
実装やその後のメンテナンス性がよいと考えており、
出来れば今回もその方向で進められないかと思っています。
そこで、ひとつの統括プロセスと、その下で
動作する(単体動作も可能な)お仕事プロセス群の
形に出来ないかと考えました。
それ自体はおそらく問題なく出来ると思うのですが、
ユーザーさんから見て「ひとつのプログラムである」
ように見せかけるため、あるプロセスを親プロセスの
ウィンドウの内部でのみ動かすことは出来ないかと
考えました。
究極的には、親ウィンドウの特定の部分に貼り付けて
子プロセス(のウィンドウ)単体では移動できないように
してしまえば、さもひとつのプログラムのように
見えるのではないかと。
まとめます。
・子プロセスのウィンドウを、親ウィンドウ内でのみ
移動可能にするか、親ウィンドウの特定の位置に
固定することは可能でしょうか
もし可能であれば、ご教示をいただけると幸いです。
よろしくお願いいたします。
以上です。
モーダルダイアログを出せない など、
何かしら問題がありそうなのであまりおすすめしません。
設定用のGUIリソース+設定I/O を持ったDLLを項目毎に作成しては
いかがでしょうか?
項目の追加・削除が出てきた場合も容易に対応できます。
「単体動作も可能」は、プロセスの引数にDLLを指定した場合は
そのDLLのみ読み込むなどすればよいと思います。
作成したプロセスのウィンドウハンドルを取得して
親を自分にしてSetParentで、親ウィンドウに
強引に閉じ込めてしまう手もあります。
変な(面白い)動きを体験できるので
要求に合うのなら試してみて下さい。
ZCH さん、とろさん、ご返信をありがとうございます。
今回は ZCH さんの案に近い形でやってみようと思います。
・グループごとに区分けして、それぞれを単体のプログラムとして作成する
・上記に、画面ごとに UserControl の形で画面情報を参照できるような
I/F を用意する
・まとめて扱いたいときには上記の exe を動的 dll 型式で参照して、
取得した UserControl を適当なウィンドウに貼り付け、そのクラス内で
必要な動作を完結させる
‥‥と、こんな方向性を考えました。
おそらく自分ひとりで考えていたら思いつかなかったと思います。
ご提案に感謝いたします。
>変な(面白い)動きを体験できるので
思わず、ニヤリとしてしまいました。w
おそらく時間的な余裕はあると思われるので、それとなく試して
納得してみようと思います。
以上で解決とさせていただきます。
ありがとうございました。