bcg库使用心得两则

作者:朱金灿

来源:http://blog.csdn.net/clever101

   

 

           最近帮同事解决了两个BCG库的使用问题,特记录下来。

 

一是在outlook风格停靠栏上创建对话框的做法。代码如下:


CBCGPOutlookBar		m_wndBarOutlook;

if (!m_wndBarOutlook.Create (_T("Shortcuts"), pBCGFrame, CRect (0, 0, 100, 100), 
		nCtrlID, WS_CHILD | CBRS_RIGHT))
	{
		return FALSE;		// fail to create
	}
    
	//
	m_wndBarOutlook.DockToFrameWindow(CBRS_ALIGN_RIGHT);

        CDataReadDlg* pPage1 = new CDataReadDlg;	
	pPage1->m_pContainer = &m_wndBarOutlook;
	pPage1->Create(IDD_CD_DATAREAD, &m_wndBarOutlook);
	
	pPage1->ShowWindow(SW_SHOW);
	pOutlookBar->AddTab (pPage1, _T("确定数据的输入与输出"),(UINT)-1, FALSE);

效果图如下:

bcg库使用心得两则


值得注意的是对话框风格必须设置为child,如下图:

bcg库使用心得两则

二是如何在停靠栏上创建一个可缩放的对话框。Bcg库提供了一个例子工程MDIBars,原来BCG库有一个类叫CBCGPDialogBar,它可以跟对话框绑定在一个,创建代码如下:

CBCGPDialogBar		m_wndResizableDlgBar;

if (!m_wndResizableDlgBar.Create (_T("Resizable Dialog Bar"), 
								this, 
								TRUE, 
								MAKEINTRESOURCE (IDD_RESIZABLE_DIALOGBAR), 
								WS_VISIBLE | WS_CHILD | CBRS_RIGHT, 
								IDW_RESIZABLE_DIALOGBAR))
	{
		TRACE0("Failed to create dialogbar
");
		return -1;      // fail to create
	}

	m_wndResizableDlgBar.EnableDocking (CBRS_ALIGN_ANY);
	DockControlBar (&m_wndResizableDlgBar);

   和上面一样,对话框风格必须设置为child。