次の方法で共有


ツール バーに関する基本事項

更新 : 2007 年 11 月

ここでは、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 は、以下のツール バー タスクを行います。

  1. CToolBar オブジェクトの Create メンバ関数を呼び出して、基になる CToolBarCtrl オブジェクトを作成します。

  2. LoadToolBar を呼び出して、ツール バー リソース情報を読み込みます。

  3. ドッキング、フローティング、およびツール ヒントを有効にする関数を呼び出します。これらの呼び出しの詳細については、「ドッキング ツール バーとフローティング ツール バー」を参照してください。

f9hbax0b.alert_note(ja-jp,VS.90).gifメモ :

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 に作成します。

さらに詳しくは次のトピックをクリックしてください

参照

概念

MFC ツール バーの実装