ダイアログバー作成(フレームに追加する場合)
- 「リソースの追加」ダイアログを開き、IDD_DIALOGBARを選択し「新規作成」ボタンを押下する。
以下のようなダイアログバーが表示されるので、このダイアログバーのプロパティを開き、リソースIDは「IDD_DIALOGBAR」とする。
- CMainFrameクラスに、ダイアログバーをメンバ変数として追加する。
CDialogBar m_dlgBar;
- CMainFrame::OnCreate()に、ダイアログバー生成処理を実装する。
if (! m_dlgBar.Create(this, IDD_DIALOGBAR,
WS_VISIBLE | CBRS_TOP, AFX_IDW_TOOLBAR))
{
TRACE0("Failed to create dialog bar\n");
return -1; // 作成に失敗
}
m_dlgBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_dlgBar);
m_dlgBar.SetWindowText(_T("ダイアログバー"));
メニューと関連付ける。
操作上でダイアログバーを一度消去してしまうと、アプリを再起動しないと再び表示するこいとができなくなる。よって、以下のようにメニューと関連付けるとよい。
- リソースエディタを使用して、ダイアログバーの表示/非表示用メニューアイテムを追加する。
- 上記メニューに対するイベントハンドラに、表示/非表示処理を実装する。
ON_COMMANDイベントハンドラ
if (m_dlgBar.IsWindowVisible())
ShowControlBar(&m_dlgBar, FALSE, FALSE);
else
ShowControlBar(&m_dlgBar, TRUE, FALSE);
ON_UPDATE_COMMAND_UIイベントハンドラ
pCmdUI->SetCheck(m_dlgBar.IsWindowVisible());
ダイアログバー上のコントロールにアクセスする。
対象となるダイアログバーのメンバ変数から、GetDlgItem ()を用いてアクセスできる。
例)コンボボックスの場合
[[CComboBox]]* pCombo = dynamic_cast<CComboBox*>(m_dlgBar.GetDlgItem(IDC_COMBO));
コメント
最終更新:2009年05月14日 18:30