こんばんは。
初歩的な質問だとは思いますが、どなたか教えてください。
環境は、winXP、VC++6.0、MFCです。
MDIのスケルトンプログラムでは最初に真っ白のウィンドウが作成されますが
このウィンドウが出ないようにするには、どこに手をつければよいのでしょう?
(ドキュメントの新規作成はなしにして、ファイルオープンのみにしたいので、
最初に出る、真っ白のウィンドウはつくりたくないんです。)
どっかの仮想関数をオーバーライドするのかなと思ったのですが、
MSDNのどこに書いてるか見つけられませんでした。
どなたか教えてください。
C*App::InitInstance の,
if (!ProcessShellCommand(cmdInfo))
の前で,
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
としておけばOKです。
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/wcemfc/htm/ccomline_6.asp
一つだけ、追加しときます。
MSDNのやり方でそのままやってしまうとコマンドラインにファイルを指定したときに
無反応になってしまうと言う問題が有ります。
無条件に
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
とやってしまっているのが原因です。
コマンドラインを生かす必要があるのであれば、
if(cmdInfo.m_nShellCommand == CCommandLineInfo::CCommandLineInfo::FileNew)
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
とするべきだと思います。
この辺は、CCommandLineInfoとCWinApp::ParseCommandLineが連携して
コマンドラインの解析を行っています。
CWinApp::ParseCommandLineの説明とCCommandLineInfoの内容を把握してから
上記コードの使用をお勧めします。