ツール バーに関する基本事項
この記事では、アプリケーション ウィザード内でオプションを選択して、実際のアプリケーションに既定のツール バーを追加できる基本的な MFC 実装について説明します。 取り上げるトピックは次のとおりです。
アプリケーション ウィザードのツール バー オプション
既定のボタンを備えた単一のツール バーを取得するには、[ユーザー インターフェイスの機能] というラベルの付いたページ上で [Standard Docking toolbar] (標準ドッキング ツール バー) オプションを選択します。 これにより、次のようなコードが実際のアプリケーションに追加されます。
ツール バー オブジェクトを作成します。
ドッキングまたはフローティングの機能を含め、ツール バーを管理します。
コードにおけるツール バー
ツール バーは、アプリケーションの CMainFrame
クラスのデータ メンバーとして宣言された CToolBar オブジェクトです。 つまり、ツール バー オブジェクトはメイン フレーム ウィンドウ オブジェクトに埋め込まれています。 これは、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
オブジェクトの Create メンバー関数を呼び出して、基になる CToolBarCtrl オブジェクトを作成します。LoadToolBar を呼び出して、ツール バー リソース情報を読み込みます。
関数を呼び出して、ドッキング、フローティング、およびツール ヒントを有効にします。 これらの呼び出しの詳細については、記事「ツール バーのドッキングとフローティング」を参照してください。
Note
MFC の一般的なサンプル DOCKTOOL には、新旧両方の MFC ツール バーの例が含まれています。 COldToolbar
を使用するツール バーでは、手順 2 で LoadBitmap
(LoadToolBar
ではなく) および SetButtons
の呼び出しが必要です。 新しいツール バーには、LoadToolBar
の呼び出しが必要です。
ドッキング、フローティング、およびツール ヒントの呼び出しは省略可能です。 必要に応じて、OnCreate
からそれらの行を削除できます。 その結果は、固定されたままになっていて、フローティングや再ドッキングできず、ツール ヒントを表示できないツール バーです。
ツール バー リソースの編集
アプリケーション ウィザードを使用して取得した既定のツール バーは、MFC バージョン 4.0 で導入された RT_TOOLBAR カスタム リソースに基づいています。 このリソースは、ツール バー エディターを使用して編集できます。 エディターでは、ボタンの追加、削除、再配置を簡単に行うことができます。 これには、Visual C++ の一般的なグラフィック エディターによく似た、ボタンのグラフィカル エディターが含まれています。 以前のバージョンの Visual C++ でツール バーを編集していた場合は、タスクがはるかに簡単になったことに気が付くでしょう。
ツール バー ボタンをコマンドに接続するには、ボタンにコマンド ID (ID_MYCOMMAND
など) を指定します。 ツール バー エディターにあるボタンのプロパティ ページ内でコマンド ID を指定します。 次に、コマンドのハンドラー関数を作成します (詳細については、「関数へのメッセージの割り当て」を参照してください)。
新しい CToolBar メンバー関数は、RT_TOOLBAR リソースを操作します。 LoadToolBar は、ツール バー ボタンの画像のビットマップを読み込む LoadBitmap と、ボタンのスタイルを設定し、ボタンをビットマップ画像に接続する SetButtons に取って代わりました。
ツール バー エディターの使用方法の詳細については、「ツール バー エディター」を参照してください。
複数のツール バー
アプリケーション ウィザードでは、既定のツール バーが 1 つ提供されます。 実際のアプリケーションに複数のツール バーが必要な場合は、ウィザードによって生成された既定のツール バーのコードに基づいて、追加のツール バーのコードをモデル化できます。
コマンドの結果としてツール バーを表示する場合は、次を行う必要があります。
ツール バー エディターを使用して新しいツール バー リソースを作成し、
OnCreate
で LoadToolbar メンバー関数を使用してそれを読み込みます。メイン フレーム ウィンドウ クラスに新しい CToolBar オブジェクトを埋め込みます。
OnCreate
で適切な関数を呼び出して、ツール バーのドッキングまたはフローティング、そのスタイルの設定などを行います。
さらに詳しい情報
CToolBar クラスと CToolBarCtrl クラス