MFC MDIアプリケーションで初期子ウインドウを開かないようにするには

解決


fat  2004-03-12 20:22:12  No: 53299  IP: [192.*.*.*]

こんにちは

私は今 MDIウインドウで初期時に開く子ウインドウを
開かないようにしようと思いとりあえず、ステップ処理を
行いどこらへんでファイルが開かれているかを調べてみて
以下の処理をコメントにしました。

XXXApp::InitInstance()
{
         //中略
  CCommandLineInfo cmdInfo;
  ParseCommandLine(cmdInfo);

  // コマンドラインでディスパッチ コマンドを指定します。
  if (!ProcessShellCommand(cmdInfo))
    return FALSE;

}

とりあえずアラートはでなかったのですが、
ヘルプを見てもなんの処理だかよくわからず、安易にコメントに
してよいのかわかりません。

この処理をおこなわないとどのような弊害がおこるのでしょうか

また、正しい初期ウインドウを開かない方法をご存知の方
ご教授よろしくお願いします。

編集    削除
fat  2004-03-12 20:27:49  No: 53300  IP: [192.*.*.*]

cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
  // コマンドラインでディスパッチ コマンドを指定します。
  if (!ProcessShellCommand(cmdInfo))
    return FALSE;
         として解決しました。お騒がせしました。

編集    削除
シャノン  2004-03-13 00:47:05  No: 53301  IP: [192.*.*.*]

自分も先日までそのようにしていましたが、よろしくないようです。
それだと、コマンドラインを指定して実行されたとき、それを問答無用で握りつぶしてしまいます。
そこで、新規作成の時だけ潰すように

if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;

とすべきです。

まぁ、このプログラムは絶対にコマンドライン指定で実行することはありません、というなら構わないんですが。

編集    削除