共用方式為


工具列基本概念

本文說明基本的 MFC 實作,可讓您選取 [應用程式精靈] 中的選項,將預設工具列新增至應用程式。 涵蓋的主題包括:

應用程式精靈工具列選項

若要取得具有預設按鈕的單一工具列,請選取標示為 [使用者介面功能] 頁面上的 [標準停駐] 工具列選項。 這會將程式代碼新增至您的應用程式,以便:

  • 建立工具列物件。

  • 管理工具列,包括其停駐或浮動的功能。

程序代碼中的工具列

工具列是應用程式類別中作為數據成員宣告的 CToolBar 物件。 換句話說,工具列物件會內嵌在主框架窗口物件中。 這表示 MFC 會在建立框架視窗時建立工具列,並在終結框架視窗時終結工具列。 多個檔案介面 (MDI) 應用程式的下列部分類別宣告會顯示內嵌工具列和內嵌狀態列的數據成員。 它也會顯示成員函式的 OnCreate 覆寫。

class CMainFrame : public CMDIFrameWnd
{
// Implementation
protected:  // control bar embedded members
   CStatusBar  m_wndStatusBar;
   CToolBar    m_wndToolBar;

// Generated message map functions
protected:
   afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
   DECLARE_MESSAGE_MAP()

工具列的建立會在CMainFrame::OnCreate中發生。 MFC 會在為框架建立窗口之後,但在視窗變成可見之前呼叫 OnCreate。 應用程式精靈產生的預設值 OnCreate 會執行下列工具列工作:

  1. CToolBar呼叫物件的 Create 成員函式,以建立基礎 CToolBarCtrl 物件。

  2. 呼叫 LoadToolBar 以載入工具列資源資訊。

  3. 呼叫函式以啟用停駐、浮動和工具提示。 如需這些呼叫函數的詳細資訊,請參閱文章停駐和浮動工具列

備註

MFC 一般範例 DOCKTOOL 包含新舊 MFC 工具列的圖例。 使用 COldToolbar 的工具列在步驟 2 中需要呼叫 LoadBitmap 而非 LoadToolBar,以及呼叫 SetButtons。 新的工具列需要調用 LoadToolBar

停駐、浮動和工具提示功能是選擇性的。 您可以視需要從 OnCreate 中移除這些行。 結果是一個工具列是固定的,無法浮動或重新固定,且無法顯示工具提示。

編輯工具列資源

您使用應用程式精靈取得的預設工具列是以 MFC 4.0 版中引進 的RT_TOOLBAR 自定義資源為基礎。 您可以使用 工具列編輯器來編輯此資源。 編輯器可讓您輕鬆地新增、刪除和重新排列按鈕。 它包含與 Visual C++ 中一般圖形編輯器非常類似的按鈕圖形編輯器。 如果您在舊版 Visual C++中編輯工具列,現在會發現工作會更容易。

若要將工具列按鈕連線至命令,您可以為按鈕提供命令識別碼,例如 ID_MYCOMMAND。 在工具列編輯器的按鈕屬性頁中指定命令標識碼。 然後建立命令的處理程式函式(如需詳細資訊,請參閱 將訊息對應至函式 )。

新的 CToolBar 成員函式會使用 RT_TOOLBAR 資源。 LoadToolBar 現在會取代 LoadBitmap 來載入工具列按鈕影像的點陣圖,而 SetButtons 則會設定按鈕樣式,並使用位圖影像連接按鈕。

如需使用工具列編輯器的詳細資訊,請參閱 工具列編輯器

多個工具列

[應用程式精靈] 提供您一個預設工具列。 如果您在應用程式中需要多個工具列,您可以根據預設工具列的精靈產生的程式代碼,為其他工具列建立程式碼模型。

如果您要將工具列顯示為命令的結果,您必須:

  • 使用工具列編輯器建立新的工具列資源,並使用OnCreate成員函式將其載入。

  • 在主框架視窗類別中內嵌新的 CToolBar 物件。

  • 在 中 OnCreate 呼叫適當的函式,以停駐或浮動工具列、設定其樣式等等。

您想要深入了解什麼

另請參閱

MFC 工具列實作