ダイアログ・バーからフレーム・ウインドウへメッセージが送られるようにする


【ウインドウ・メッセージの発行】

 ダイアログ・バー上にクラスを割り当てて、そこにイベントを設定してもウインドウ・メッセージは
フレーム・ウインドウへ発行されません。
ダイアログ・バー上のコントロールのメッセージをフレーム・ウインドウへ送られるようにして、コン
トロールが動作するようにするためには、フレーム・ウインドウにメッセージを追加する必要があります。

 ウインドウ・メッセージの登録は、フレーム・ウインドウのBEGIN_MESSAGE_MAPマクロへ追加します。

【ダイアログ・バー上のコントロールの操作】

 ダイアログ・バー上のコントロールを操作させるためのオブジェクトを作成する必要があります。
 CDialogbar::GetDlgItemを使用します。


【サンプル】

    [MainFrm.h]

	protected:
	  CDialogBar  m_wndDialogBar;     //ダイアログ・バーのメンバを宣言

  [MainFrm.cpp]

	BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
		//{{AFX_MSG_MAP(CMainFrame)
		ON_WM_CREATE()
		ON_LBN_SELCHANGE(IDC_LIST1, OnSelchangeList1)     <---- ウインドウ・メッセージの追加
		//}}AFX_MSG_MAP
	END_MESSAGE_MAP()

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
     {
                        ・
              ・
              ・

		//---------------------------------------------------------------------------
		//ダイアログ・バーを生成する
		if(!m_wndDialogBar.Create(this, IDD_DIALOG_BAR, CBRS_LEFT, IDD_DIALOG_BAR)){
			TRACE("Failed to create dialog bar\n");
			return -1;
		}
		m_wndDialogBar.SetBarStyle(m_wndDialogBar.GetBarStyle()|CBRS_SIZE_DYNAMIC);

		//ドッキングを可能にする
		m_wndDialogBar.EnableDocking(CBRS_ALIGN_ANY);
		EnableDocking(CBRS_ALIGN_ANY);
		DockControlBar(&m_wndDialogBar);
	
		//ダイアログ・バーのリスト・ボックスの初期化
		CListBox* m_ListBox = (CListBox*)m_wndDialogBar.GetDlgItem(IDC_LIST1);
		m_ListBox->AddString("TEST");
		m_ListBox->AddString("TEST2");

                        ・
              ・
              ・
    }

	void CMainFrame::OnSelchangeList1() 
	{
		// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
		AfxMessageBox("TEST");	
	}