見た目はツールバーに似ていますが、ダイアログをバーに格納したものです。
見た目はツールバーに似ていますが、ダイアログをバーに格納したものです。
プロパティで「枠なし」、「子」を指定して、任意のコントロールを配置します。
フレームクラスに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()
{
//~ 何らかの処理 ~//
}