ツールバーから選択で一つだけウィンドウ生成
VC++2005(MFC)にてMDIアプリケーションを作成しております。
前回当サイトの質問
http://oshiete1.goo.ne.jp/qa4708537.html
にて、参照URL(http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_MDI1.html)と、
回答者様のご指摘により問題解決したのですが、
このままだと、メニュー選択するとウィンドウ1とウィンドウ2が
再び現れてしまい、合計4つのウィンドウが現れることになります。
(ウィンドウ1:2個、ウィンドウ2:2個)
起動時にウィンドウ1のみ表示させる方法は自力で作成したのですが、
メニュー選択でウィンドウを一つ(ウィンドウ2)だけ
追加生成するようにし、合計2つの別々のウィンドウが現れるようにしたいのです。
下記に改良した現時点でのソースコードを記載します。
「☆☆☆追加☆☆☆」で囲まれた箇所が、上記質問URLを元に改変した
ソースコードになります。他はスケルトンです。
【呼び出し元クラス:CMDITest1App】
CMDITest1App::CMDITest1App(){ //コンストラクタ
//☆☆☆追加☆☆☆
m_WndFlg == false;
//☆☆☆追加☆☆☆
}
BOOL CMDITest1App::InitInstance(){
・・・ //スケルトン
//☆☆☆追加☆☆☆
CMultiDocTemplate* pDocTemplate2;
pDocTemplate2 = new CMultiDocTemplate(IDR_MDITest1TYPE2,
RUNTIME_CLASS(CMDITest1Doc),
RUNTIME_CLASS(CChildFrame), // カスタム MDI 子フレーム
RUNTIME_CLASS(CMDITest1View2));
if (!pDocTemplate2)
return FALSE;
AddDocTemplate(pDocTemplate2);
m_pDocTemplate2 = pDocTemplate2;
//☆☆☆追加☆☆☆
・・・
return TRUE;
}
【オーバーライドした関数:OnFileNew()】
//☆☆☆追加☆☆☆
void CMDITest1App::OnFileNew(){
CWinApp::OnFileNew();
if( m_WndFlg == true ){ //初回起動時は生成しない
((CMainFrame*)m_pMainWnd)->OpenView( m_pDocTemplate2 );
}
m_WndFlg = true;
}
//☆☆☆追加☆☆☆
何か良い方法ございましたら、ご教授お願い致します。
また、現在MDIでのアプリケーション作成について作成手順が分からず大変苦戦しております。
何か順序を追って作成していけるような参考サイト・文献などあれば、
そちらの方もご教授頂けますと幸いです。
補足
ありがとうございました!!別のウィンドウを表示させることはできました。そこのネットワークカメラの画像をのせたいと思うのですが、いろいろ考えたのですが、どこに関数を書いたらいいのかがわかりません。何かアドバイスがありましたら教えてくださいm(_ _)m