作者:朱金灿
来源: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);
效果图如下:
值得注意的是对话框风格必须设置为child,如下图:
二是如何在停靠栏上创建一个可缩放的对话框。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\n");
return -1; // fail to create
}
m_wndResizableDlgBar.EnableDocking (CBRS_ALIGN_ANY);
DockControlBar (&m_wndResizableDlgBar);
和上面一样,对话框风格必须设置为child。