• ベストアンサー

MDI起動時に空のウィンドウが開かないようにするには?

初歩的な質問で恐縮なのですが、 MDIアプリケーションで起動時に空のウィンドウが開かないようにするにはどうすればよいのでしょうか? 目的 MDIで作ったデータ入力ソフトがありまして、それを閲覧専用に改造したいのです。 つまり、既存のファイルを開くだけでいいのに最初に空ファイルのウインドウが立ち上がるのがウザイということです。 もとのプロジェクトはVC++5.0で作られており(作成者がいなくなってしまった)、今はVC++6.0にコンバートして編集しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • bir
  • ベストアンサー率44% (11/25)
回答No.1

MFCで作ったものであれば、CxxApp::InitInstance()のProcessShellCommand()を呼んでる直前で cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing; を入れてやれば起動時にドキュメントが新規作成されなくなります。 詳しくはCCommandLineInfoクラスのヘルプを参照してください。 Win32APIで作られたものだったらわかりませんが、子ウィンドウが作られる所でブレークを張ってコールスタックを見ればある程度追えるんじゃないでしょうか。 例) // DDE、file open など標準のシェル コマンドのコマンドラインを解析します。 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing; // コマンドラインでディスパッチ コマンドを指定します。 if (!ProcessShellCommand(cmdInfo)) return FALSE;

ystk
質問者

お礼

ありがとうございます。 cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing; でうまくいきました。とても助かりました。 お盆休みでお礼が遅れてしまい申し訳ありませんでした。 m(_ _)m

すると、全ての回答が全文表示されます。

関連するQ&A