次の方法で共有


ツール バーの基礎

この記事では、アプリケーション ウィザードでオプションを選択して、既定のツール バーをアプリケーションに追加できる MFC の基本的な実装について説明します。 取り上げるトピックは次のとおりです。

アプリケーション ウィザードのツール バー オプション

既定のボタンを含む 1 つのツール バーを取得するには、[ユーザー インターフェイス機能] というラベルのページで標準ドッキング ツール バー オプションを選択します。 これにより、次のコードがアプリケーションに追加されます。

  • ツール バー オブジェクトを作成します。

  • ドッキングや浮動の機能など、ツール バーを管理します。

コードのツール バー

ツール バーは、アプリケーションの クラスのデータ メンバーとして宣言された 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 は、次のツール バー タスクを実行します。

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

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

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

MFC 全般サンプル DOCKTOOL には、古い MFC ツール バーと新しい MFC ツール バーの両方の図が含まれています。 COldToolbarを使用するツールバーでは、手順 2 における呼び出しはLoadBitmap及びLoadToolBarにする必要があります(SetButtonsではなく)。 新しいツール バーには、 LoadToolBarの呼び出しが必要です。

ドッキング、フローティング、およびツール ヒントの呼び出しは省略可能です。 必要に応じて、 OnCreate からそれらの行を削除できます。 その結果、ツール バーは固定されたままで、浮動またはやり直すことができず、ツール ヒントを表示できません。

ツール バー リソースの編集

アプリケーション ウィザードで取得する既定のツール バーは、MFC バージョン 4.0 で導入された RT_TOOLBAR カスタム リソースに基づいています。 このリソースは 、ツール バー エディターを使用して編集できます。 エディターを使用すると、ボタンの追加、削除、再配置を簡単に行うことができます。 これには、Visual C++ の一般的なグラフィックス エディターによく似たボタン用のグラフィカル エディターが含まれています。 以前のバージョンの Visual C++ でツール バーを編集した場合、タスクがはるかに簡単になりました。

ツール バー ボタンをコマンドに接続するには、ボタンにコマンド ID ( ID_MYCOMMAND など) を指定します。 ツール バー エディターのボタンのプロパティ ページでコマンド ID を指定します。 次に、コマンドのハンドラー関数を作成します (詳細については 、メッセージの関数へのマッピングを 参照してください)。

新しい CToolBar メンバー関数は 、RT_TOOLBAR リソースと連携します。 LoadToolBarLoadBitmap の代わりにツール バー ボタン イメージのビットマップを読み込み、 SetButtons を使用してボタンのスタイルを設定し、ボタンをビットマップ イメージに接続するようになりました。

ツール バー エディターの使用方法の詳細については、「ツール バー エディター」を参照してください。

複数のツール バー

アプリケーション ウィザードには、既定のツール バーが 1 つ用意されています。 アプリケーションで複数のツール バーが必要な場合は、既定のツール バーのウィザードで生成されたコードに基づいて、追加のツール バーのコードをモデル化できます。

コマンドの結果としてツール バーを表示する場合は、次の手順を実行する必要があります。

  • ツール バー エディターを使用して新しいツール バー リソースを作成し、LoadToolbar メンバー関数を使用して OnCreate読み込 みます。

  • メイン フレーム ウィンドウ クラスに新しい CToolBar オブジェクトを埋め込みます。

  • ツールバーをドッキングまたはフローティングしたり、スタイルを設定したりするために、 OnCreate で適切な関数呼び出しを行います。

詳しく知りたいこと

こちらも参照ください

MFC ツール バーの実装