工具列主要資料
本文將告訴您執行 MFC 的主要可讓您新增到您的應用程式的預設工具列,在應用程式精靈中選取選項。 涵蓋的主題包括:
應用程式精靈的 [工具列] 選項
在程式碼中的工具列
工具列資源編輯
多個工具列
應用程式精靈的工具列選項
若要取得單一具有預設按鈕的工具列,請選取 [標示為 [使用者介面功能] 頁面上的 [標準停駐] 工具列選項。 如此會將程式碼加入您的應用程式的:
建立工具列物件。
管理包括要停駐或浮動的工具列。
在程式碼中的工具列
工具列是 CToolBar 物件宣告為資料成員是應用程式的 CMainFrame 類別。 換言之,工具列物件被內嵌在主框架視窗物件。 這表示 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應用程式精靈會產生示範下列工具列工作:
呼叫CToolBar物件的建立成員函式來建立基礎 CToolBarCtrl 物件。
呼叫 LoadToolBar 載入工具列資源的資訊。
呼叫函式以啟用停駐、 浮動和工具提示。 如需有關這些呼叫的詳細資訊,請參閱文章停駐和浮動的工具列。
注意事項 |
---|
MFC 一般範例 DOCKTOOL 包含舊與新的 MFC 工具列的說明。使用工具列 COldToolbar 需要呼叫在步驟 2 到LoadBitmap (而不是LoadToolBar) 及 [至SetButtons。新的工具列需要呼叫LoadToolBar。 |
停駐、 浮動和工具提示是選擇性的。 您可以移除這些行,從OnCreate如果您想要的話。 結果是會保持固定、 無法浮動、 變換位置和顯示工具提示的工具列。
工具列資源編輯
您可以從應用程式精靈的 [預設] 工具列根據 RT_TOOLBAR MFC 4.0 版中介紹的自訂資源。 您可以編輯這個資源與工具列編輯器。 在編輯器] 可讓您輕鬆地新增、 刪除及重新整理按鈕。 它包含在 Visual C++ 中一般圖形編輯器類似於按鈕的圖形化編輯器。 如果您編輯工具列,在舊版的 Visual C++ 中,您會發現工作更加容易現在。
若要連線到一個指令的工具列按鈕,您提供按鈕命令 ID,例如ID_MYCOMMAND。 在工具列編輯器] 按鈕的屬性頁中指定的命令 ID。 @ 您的命令處理函式 (請參閱訊息對應到函式如需詳細資訊)。
新 CToolBar 成員函式會使用與 RT_TOOLBAR 資源。 LoadToolBar 現在會取代 LoadBitmap 載入點陣圖] 工具列的按鈕影像,以及 SetButtons 設定按鈕樣式,並經由點陣圖影像的按鈕。
如需有關使用工具列編輯器的詳細資訊,請參閱工具列編輯器。
多個工具列
應用程式精靈為您提供一個預設的工具列。 如果您需要一個以上的工具列,在您的應用程式中,您可以建立其他工具列程式精靈所產生的程式碼,替預設工具列上的程式碼模型。
如果您想要顯示工具列命令的結果,您必須:
使用工具列編輯器建立新的工具列資源,並將其在載入OnCreate與 LoadToolbar 成員函式。
內嵌新的 CToolBar 在主框架視窗類別中的物件。
產生適當的函式呼叫中OnCreate來停駐或浮動工具列、 設定其樣式,依此類推。