開発じたばた日誌

前へ●●●次へ
じたばた日誌目次へ戻る
TSUCHY Softへ戻る


WinArrange MDI2編

 正解は以下のようになっています
 Excel親ウィンドウ
 ├ツールバー
 ├ステータスバー
 ├よくわかなんけどなんかのウィンドウ
   ...............
 └ MDI親ウィンドウ
   ├ MDI1ウィンドウ
   ├ MDI2ウィンドウ
    ...............
   └ MDInウィンドウ

 さあ、困りました。構造はわかったのですが、どれがMDI親ウィンドウなのでしょうか? ツールバー、ステータスバーとの区別がつきません。さらには親よりも大きい見えないウィンドウ まであるようなのです。調べても「僕はMDIの親です」なんて教えてくれません。クラス名も当てにはなりません。 クラス名はExcelではよくてもロータス1,2,3では同じ名前は使えませんね。

 悩んだあげく 見えるウィンドウで、親より大きくなくて、そのなかでもっとも面積の大きいものを MDI親ウィンドウであると判断することにしました。もちろんこれは曖昧さの残る判定で、 「間違いないのか」と尋ねられれば「98.3%の確率で当たります」としか答えようがありません。

 MDI親ウィンドウがわかればあとはこれまで通りのやり方ですみます。実際この判定方法はよい結果を 得られ、だいたいどんなMDIアプリでもうまくいきます。メデタシメデタシ。

 この開発過程で、よそ様のウィンドウの中の構造を知ることができるようになりました。この処理は Dialog Check,Control Captureで生かされることになります。

 またツールバーのボタンは、実はボタンではなく、ツールバーウィンドウがしこしこ絵を描いている のだとわかりました。だってツールバーには子ウィンドウはないもんね。