MDIで最初に作成される真っ白のウィンドウって・・・ – プログラミング – Home

MDIで最初に作成される真っ白のウィン...
 
通知
すべてクリア

MDIで最初に作成される真っ白のウィンドウって・・・


さおり
 さおり
(@さおり)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

こんばんは。
初歩的な質問だとは思いますが、どなたか教えてください。
環境は、winXP、VC++6.0、MFCです。

MDIのスケルトンプログラムでは最初に真っ白のウィンドウが作成されますが
このウィンドウが出ないようにするには、どこに手をつければよいのでしょう?
(ドキュメントの新規作成はなしにして、ファイルオープンのみにしたいので、
  最初に出る、真っ白のウィンドウはつくりたくないんです。)

どっかの仮想関数をオーバーライドするのかなと思ったのですが、
MSDNのどこに書いてるか見つけられませんでした。

どなたか教えてください。


引用解決済
トピックタグ
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

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


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

一つだけ、追加しときます。
MSDNのやり方でそのままやってしまうとコマンドラインにファイルを指定したときに
無反応になってしまうと言う問題が有ります。
無条件に
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
とやってしまっているのが原因です。

コマンドラインを生かす必要があるのであれば、

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

とするべきだと思います。
この辺は、CCommandLineInfoとCWinApp::ParseCommandLineが連携して
コマンドラインの解析を行っています。
CWinApp::ParseCommandLineの説明とCCommandLineInfoの内容を把握してから
上記コードの使用をお勧めします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました