作者:朱金灿
来源: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 "); return -1; // fail to create } m_wndResizableDlgBar.EnableDocking (CBRS_ALIGN_ANY); DockControlBar (&m_wndResizableDlgBar);
和上面一样,对话框风格必须设置为child。