見た目はツールバーに似ていますが、ダイアログをバーに格納したものです。
見た目はツールバーに似ていますが、ダイアログをバーに格納したものです。
プロパティで「枠なし」、「子」を指定して、任意のコントロールを配置します。
フレームクラスにCDialogBarメンバを追加します。今回はメンバ名をm_dbMainとします。
Create()でインスタンスを作成します。ソースはダイアログバーをレバーコントロールに追加する場合の例です。
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { //~ 何らかの処理 ~// //==== ダイアログバー作成 ====// if(!m_dbMain.Create(&m_rbMain, IDD_DLGBAR_MAIN, WS_VISIBLE | CBRS_TOP, AFX_IDW_TOOLBAR)) { return -1; } //==== レバーに追加 ====// m_rbMain.AddBar(&m_dbMain); //~ 何らかの処理 ~// }
実行するとそれらしく表示されるのですが、この時点ではボタン類が無効になっているかと思います。
フレームクラスにハンドラを実装することで有効になります。
// ヘッダファイルへの記述 -------------------- class CMainFrame : public CFrameWnd { (中略) // 生成されたメッセージ マップ関数 protected: CDialogBar m_wndDlgBar; //{{AFX_MSG(CMainFrame) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnButtonSearch(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; // ソースファイルへの記述 -------------------- BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_BN_CLICKED(IDC_BUTTON_HOGE, OnButtonHoge) //}}AFX_MSG_MAP END_MESSAGE_MAP() ・・・・・・ void CMainFrame::OnButtonHoge() { //~ 何らかの処理 ~// }