工具列基本概念
本文說明可讓您將預設工具列加入至您的應用程式可以選取應用程式精靈中選項的基本 MFC 實作。 涵蓋的主題包括:
應用程式精靈工具列索引標籤
工具列的程式碼
編輯工具列資源
多個工具列
應用程式精靈工具列索引標籤
若要取得預設按鈕的單一工具列,請選取標記為使用者介面功能的網頁的標準停駐工具列選項。 這會將程式碼加入至應用程式的:
建立工具列物件。
處理工具列,包括其能力固定或浮動。
工具列的程式碼
工具列是做為應用程式的 CMainFrame 類別的資料成員宣告的 CToolBar 物件。 換句話說,工具列物件在主框架視窗物件中。 這表示 MFC 建立工具列,在建立框架視窗時會終結工具列,會終結框架視窗時。 下列部分類別宣告,多重文件介面 (MDI) (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 工具列執行下列工作:
呼叫 CToolBar 物件的 建立 成員函式來建立基本的 CToolBarCtrl 物件。
呼叫 LoadToolBar 以載入工具列資源資訊。
呼叫函式啟用停駐,浮動和工具提示。 如需這些呼叫的詳細資訊,請參閱本文件的 固定或浮動工具列。
注意事項 |
---|
一般 MFC DOCKTOOL 範例包括舊和新的 MFC 工具列的圖例。使用 COldToolbar 的工具列要求呼叫步驟 2 對 LoadBitmap (而不是 LoadToolBar) 以及 SetButtons。新的工具列要求呼叫 LoadToolBar。 |
停駐,浮動和工具提示呼叫是選擇性的。 如果有需要,您可以從 OnCreate 移除這些行。 結果是保持固定,無法浮動或 redock 和無法顯示工具提示的工具列。
編輯工具列資源
取得與應用程式精靈的預設工具列根據 RT_TOOLBAR 自訂資源,會在 MFC 4.0 版。 您可以編輯與 工具列編輯器的這個資源。 編輯器可讓您輕鬆地加入,刪除和重新整理按鈕。 它包含非常類似於 Visual C++ 的一般圖形編輯按鈕的圖形編輯器。 如果您編輯在舊版 Visual C++ 中的工具列,您現在要尋找工作更容易。
若要連接工具列按鈕加入至命令,將按鈕命令 ID,例如 ID_MYCOMMAND。 指定命令 ID 在工具列編輯器中按鈕的屬性頁。 然後建立命令的處理常式函式 (請參閱 out 此函式之對應訊息 以取得詳細資訊)。
新的 CToolBar 成員函式與 RT_TOOLBAR 資源一起使用。 LoadToolBar 現在會取代 LoadBitmap 載入工具列按鈕影像的點陣圖和 SetButtons 將按鈕樣式和連接有點陣圖影像的按鈕。
如需使用工具列編輯器的詳細資訊,請參閱 工具列編輯器。
多個工具列
應用程式精靈可為您提供一個預設工具列。 如果您在您的應用程式需要多個工具列,您可以建立自己的根據預設工具列的精靈產生的程式碼的其他工具列的程式碼。
由於命令,如果您要顯示工具列,您需要:
建立工具列編輯器中新增工具列資源並載入它在 OnCreate 用 LoadToolbar 成員函式。
將新的 CToolBar 物件在您的主框架視窗類別。
會在 OnCreate 的適當的函式呼叫固定或浮動工具列,設定其樣式,依此類推。