如何使用 SwSplit.exe 單一檢視] 和 [SDI 應用程式中的多個檢視之間切換

文章翻譯 文章翻譯
文章編號: 199515 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
附註 Microsoft Visual C++.NET 2002年和 Microsoft Visual C++.NET 2003年支援 Managed 程式碼模型所提供的 Microsoft.NET Framework 和不受管理的原生 Microsoft Windows 程式碼模型。本文資訊僅適用於不受管理的 Visual C++ 程式碼。Microsoft Visual C++ 2005年支援這兩個 Managed 程式碼模型所提供的 Microsoft.NET Framework 和不受管理的原生 Microsoft Windows 程式碼模型。
全部展開 | 全部摺疊

結論

SwSplit.exe 是為了示範在 SDI 應用程式中的不同檢視之間切換使用 MFC 的範例。這個範例允許使用者選取單一檢視] 或 [多個檢視。多個檢視會顯示在分隔視窗窗格。本範例示範如何,您可以顯示不同的檢視 (在巢狀的分隔視窗中一些) 依據樹狀檢視中的選取範圍。

其他相關資訊

從 「 Microsoft 下載中心 」 下載下列檔案有:

SwSplit.exe

如需有關如何下載 Microsoft 支援檔案的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
119591如何從線上服務取得 Microsoft 支援檔案
Microsoft 已掃描這個檔案有無病毒。Microsoft 使用已張貼檔案的日期中的 [可用的最新病毒偵測軟體。檔案儲存在安全性強化的伺服器上,以避免任何未經授權的更改至檔案。

具有文件/檢視架構的應用程式支援的 MFC AppWizard 可以建立兩個基本架構: 單一文件介面 (SDI) 和多重文件介面 (MDI)。SDI 和 MDI 起始點,以建置應用程式可以看起來不同於 AppWizard 產生的應用程式。

Microsoft Outlook 98 是受歡迎使用者介面 (UI) 結構的範例。Outlook 98 UI 結構有不同的檢視表可以出現在不同窗格的位置以 multi-pane 分隔視窗。所顯示的特定檢視有關其他使用者介面物件 (比方說樹狀結構檢視) 中選取項目。某些選取的項目可以開啟現有的分隔視窗中的分隔視窗。

這種類型的應用程式使用者介面設計並非真正 MDI 因為它只能有一個框架視窗。 MDI 應用程式主框架視窗內有多個子框架視窗。不過,Outlook 98 設計可以顯示檢視的一或多個不同型的別。它不通常清除如何達成這種類型的 SDI 架構的介面。SwSplit.exe 範例會示範如何建立這種類型的 UI 設計,使用 MFC 和所產生的 MFC AppWizard 的 SDI 架構。注意: Outlook 98 並不會使用 MFC。

SwSplit.exe 使用靜態分隔視窗。靜態分隔視窗有固定的數目的窗格。這不同於動態分隔視窗,您可以在此變更的窗格數目。如果使用者想要變更編號或 SwSplit.exe 中窗格方向,終結分隔視窗,並在它的位置中建立新的分隔視窗具有您想要的窗格結構。在此程序原始檢視也會被終結,並以填滿新的分隔器窗格建立新的檢視。

SwSplit.exe 使用清單檢視中,編輯檢視、 樹狀檢視和三種不同的表單檢視]。切換檢視程式碼輕易切換到其他類型的檢視。以下是部分建立分隔檢視,其窗格中,填滿這些窗格的檢視程式碼的範例。 CSplitterView 有 CSplitterWnd 衍生類別,變數 m_wndSplitter 所代表的成員物件。兩個檢視會建立以填滿垂直分割列以分割的視窗。這些檢視會根據傳入 CreateView 函式的執行階段類別。左的窗格取得 CMyTreeView,為基礎的檢視及右邊的窗格取得 CFormView1 為基礎的檢視。

int CSplitterView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
   if (CView::OnCreate(lpCreateStruct) == -1)
      return -1;
   m_wndSplitter.CreateStatic(this, 1, 2);
   CCreateContext* pContext = (CCreateContext*)lpCreateStruct->lpCreateParams:
   m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CMyTreeView), CSize(0,0), pContext);
   m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CFormView1), CSize(0,0), pContext);

   return 0;
}
				


SwSplit.exe 示範如何建立、 保存,並在這種類型的 multi-view 的 SDI 應用程式中顯示資料。開啟檔案,而資料儲存以交易為基礎。這就像 CHKBOOK MDI 範例隨附 Visual C++。除了 SDI 應用程式中顯示資料的交易基礎儲存,SwSplit.exe 自動載入最最近使用檔案開頭。SwSplit.exe 讀取最最近使用檔案的應用程式的登錄項目。雖然某些使用者可能需要以交易為基礎儲存資料,它 complicates 事情。它的使用就容易讓 MFC 架構中保存資料的標準方式多。標準方法涉及將資料儲存一次當使用者選擇將它儲存或關閉文件時。您可以藉由實作文件類別的 Serialize 函式使用標準的方式。當您可以最好讓 MFC 為您執行工作。如此一來取得更穩定且易於維護方案。

這個範例會示範如何變更功能表及工具列以符合使用中檢視。 改變特定檢視的只檢視特定項目是工具列按鈕和功能表項目,顯示移除 FormView3。所有其他功能表項目和工具列按鈕的所有檢視會顯示。更新使用者介面會處理的啟用或停用它們的架構的命令。比方說功能表項目和屬於 editview 這個範例中的工具列按鈕 (也就是復原、 剪下、 複製、 貼上,及列印) 的所有檢視會顯示。這是典型的方式來處理它。適當的檢視不會顯示或不具有焦點時,功能表項目和工具列按鈕都無法使用。注意: 的相同可能有已完成的工具列按鈕和功能表項目,顯示移除 FormView3。

SwSplit.exe 也示範如何在檢視表和某些控制項中顯示非標準的背景色彩。 您必須在您自己的應用程式中使用此功能時請小心。某些使用者可能會不喜歡您的色彩。藉由變更背景色彩您可以限制使用者能夠藉由變更 [控制台] 中的這些設定套用個人的色彩配置。在另外玩色彩可能會影響您的應用程式的存取範圍。比方說某些使用者可能色盲。

也可能很有幫助 VIEWEX 和收集樣本。這兩個範例隨附於 Visual C++。VIEWEX 會使用 MDI 的架構,並示範如何在不同的子框架視窗使用不同類型的靜態分隔視窗。收集的範例說明 MFC 集合類別,並示範如何在 SDI 應用程式中顯示不同的檢視。不過,沒有任何檢視中收集牽涉到分隔視窗。

屬性

文章編號: 199515 - 上次校閱: 2014年2月23日 - 版次: 7.0
這篇文章中的資訊適用於:
  • Microsoft Visual C++ 4.2 Enterprise Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 4.2 Professional Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
關鍵字:?
kbnosurvey kbarchive kbmt kbinfo kbdownload kbdocview kbfile kbgrpdsmfcatl kbhowto kbmfc kbsample kbuidesign KB199515 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:199515
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com