ここでは、MFC の実装に関する基本事項について説明します。基本事項を理解することにより、アプリケーション ウィザードでオプションを選択することで、既定のツール バーをアプリケーションに追加できます。 ここでは、次の内容について説明します。
アプリケーション ウィザードの [ツールバー] オプション
ツール バーのコード
ツール バー リソースの編集
複数のツール バー
アプリケーション ウィザードの [ツールバー] オプション
既定のボタンを備えたツール バーを 1 つ生成するには、[ユーザー インターフェイスの機能] ページの [標準ドッキング] オプションを選択します。 これにより、次の動作を行うコードがアプリケーションに追加されます。
ツール バー オブジェクトを作成する。
ツール バーを管理する (ドッキングまたはフローティングを行う機能など)。
ツール バーのコード
ツール バーは、アプリケーションの CMainFrame クラスのデータ メンバーとして宣言された CToolBar オブジェクトです。 つまり、ツール バー オブジェクトは、メイン フレーム ウィンドウ オブジェクトに埋め込まれています。 これは、MFC コードではフレーム ウィンドウの作成時にツール バーが作成され、フレーム ウィンドウが破棄されるとツール バーも破棄される、ということを意味します。 次のマルチ ドキュメント インターフェイス (MDI: Multiple Document Interface) アプリケーション用の部分クラス宣言は、埋め込まれるツール バーおよびステータス バーのデータ メンバーを示しています。 また、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 オブジェクトの Create メンバー関数を呼び出して、基になる CToolBarCtrl オブジェクトを作成します。
LoadToolBar を呼び出して、ツール バー リソース情報を読み込みます。
ドッキング、フローティング、およびツール ヒントを有効にする関数を呼び出します。 これらの呼び出しの詳細については、「ドッキング ツール バーとフローティング ツール バー」を参照してください。
注意
MFC の「標準のサンプル」の「DOCKTOOL サンプル : ドッキング可能ツール バー」には、新しい形式および古い形式の MFC ツール バーの例があります。 COldToolbar を使用してツール バーを作成する場合は、手順 2 で LoadBitmap (LoadToolBar ではなく) と SetButtons を呼び出す必要があります。 新しい形式のツール バーの場合は、LoadToolBar を呼び出す必要があります。
ドッキング、フローティング、およびツール ヒントの関数呼び出しはオプションです。 それらの行を OnCreate から削除することもできます。 その結果、ツール バーは固定されたままとなり、フローティングや再ドッキングはできません。また、ツール ヒントも表示されません。
ツール バー リソースの編集
アプリケーション ウィザードを使用して生成する既定のツール バーは、MFC Version 4.0 で導入されている RT_TOOLBAR カスタム リソースに基づいています。 ツール バー エディターを使用して、このリソースを編集できます。 エディターを使用すると、簡単にボタンを追加、削除、および再整列できます。 ツール バー エディターには、Visual C++ の通常のグラフィックス エディターによく似ている、ボタン用のグラフィカル エディターが含まれています。 以前のバージョンの Visual C++ に比べると、ツール バーの編集作業は簡単になっています。
ツール バー ボタンをコマンドに結び付けるには、ボタンに ID_MYCOMMAND などのコマンド ID を指定します。 ツール バー エディターにある、ボタンのプロパティ ページでコマンド ID を指定します。 次に、そのコマンドのハンドラー関数を作成します。詳細については、「関数へのメッセージの割り当て」を参照してください。
新しい形式の CToolBar メンバー関数は、RT_TOOLBAR リソースを処理します。 つまり LoadToolBar が、LoadBitmap の代わりにツール バー ボタン イメージのビットマップを読み込みます。また、SetButtons の代わりにボタン スタイルを設定し、ボタンとビットマップ イメージを結び付けます。
ツール バー エディターの使い方の詳細については、「ツール バー エディター」を参照してください。
複数のツール バー
アプリケーション ウィザードには、既定のツール バーが 1 つ用意されています。 アプリケーションで複数のツール バーが必要な場合、既定のツール バーを表示するためにウィザードで生成されたコードを基に、追加のツール バーを作成できます。
ツール バーをあるコマンドの結果として表示する場合は、以下の操作を行う必要があります。
ツール バー エディターを使用して、新しいツール バー リソースを作成し、それを LoadToolbar メンバー関数を使用して、OnCreate に読み込みます。
新しい CToolBar オブジェクトをメイン フレーム ウィンドウ クラスに埋め込みます。
ツール バーをドッキングまたはフローティングさせたり、ツール バーのスタイルを設定したりする、適切な関数呼び出しを OnCreate に作成します。
さらに詳しくは次のトピックをクリックしてください
CToolBar クラスと CToolBarCtrl クラス