Visual Studioで開発したMFC MDIアプリケーションがタブ付きのインターフェイスを持っています。タブグループ内で非ドキュメントビューであるビューを開くことができます。つまり、関連付けられているドキュメントがなく、保存する必要はありません。非モーダルダイアログのように動作しますが、タブ付きです。 [これらのウィンドウは単に情報を表示してコマンドを実行するだけです]MFC MDIタブ付きアプリケーション - 非ドキュメントウィンドウをタブグループに追加したい
MDIアプリケーションの内部機構は、関連するウィンドウとともにDocTemplate - Document - Frame - Viewオブジェクト構造を扱うようになっています。
Q1)誰かがこのようなウィンドウを作成し、既に確立されているMDIタブグループに追加する方法に関するアイディアを得ましたか?私は、リッチエディットウィンドウを作成しようとしたとし、それを追加しました:
// m_wndListingView will be a non-editable CRichEditCtrl
m_wndListingView->Create(WS_CHILD | WS_VISIBLE | ES_WANTRETURN | WS_VSCROLL |
WS_HSCROLL | ES_MULTILINE | ES_LEFT | ES_AUTOHSCROLL | ES_SAVESEL |ES_READONLY,
CRect(0, 0, 20, 20), pMainFrame, 1234);
// get Tab control and add a new tab
CMFCTabCtrl *mm_wndTabCtrl = &pMainFrame->GetMDITabs();
mm_wndTabCtrl->AddTab (m_wndListingView, _T("LISTING"));
これが作成され、ウィンドウを表示..しかし、それはタブグループに追加されませんでした。
Q2)タブグループに適切に表示されたウィンドウ(おそらくフレームウィンドウである必要があります)を取得できた場合、ユーザーがそれを閉じるときに、 appを使用してドキュメントを保存するよう促しますか?おそらく、私は 'OnClose'メソッドをオーバーロードできますが、ドキュメントが存在しないため、document :: OnClose()はできません。あなたの豊かな編集をホストにフレームとビューを作成する必要があります任意のアイデアを
おかげで、 CAS
私はこれをチェックアウトします。 [今までは、私は新しいdoc/viewペアで同じフレームを使いました...そして、私はOnOpen()やOnClose()などの 'ドキュメント'アクティビティを正しく処理しなければなりませんでした。どうも –