1、CBCGPStatusBar 状态栏m_wnd (不可加入布局)
BCGPStatusBar.h
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
if (!m_wnd.Create(this) ||
!m_wnd.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
m_wnd.SetBarStyle (m_wnd.GetBarStyle () & ~CBRS_GRIPPER);
2、CBCGPMenuBar 菜单栏m_wnd(可加入布局)
BCGPMenuBar.h
if (!m_wnd.Create (this))
{
TRACE0("Failed to create menubar\n");
return -1; // fail to create
}
m_wnd.SetBarStyle(m_wnd.GetBarStyle() | CBRS_SIZE_DYNAMIC);
m_wnd.SetBarStyle (m_wnd.GetBarStyle () & ~CBRS_GRIPPER);
DockControlBar(&m_wnd);(布局)
3、CBCGPToolBar 工具栏 m_wnd
BCGPToolBar.h
//IDR_TOOLBAR_MAIN(可以是系统菜单,也可以是自定义菜单)
//ID_FILE_NEW(按钮ID)
//IDB_STANDARD_TOOLBARNEW(自定义图片Png 【32*n】*32)
CClientDC dc (this);
BOOL bIsHighColor = dc.GetDeviceCaps (BITSPIXEL) > 8;
UINT uiToolbarHotID = bIsHighColor ? IDB_STANDARD_TOOLBARNEW : 0;
if (!m_wnd.CreateEx(this, TBSTYLE_BUTTON, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,CRect(1,1,1,1)) ||
!m_wnd.LoadToolBar(IDR_TOOLBAR_MAIN, 0, 0, FALSE, 0, 0, uiToolbarHotID))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
//替换工具栏上的按钮
m_wnd.ReplaceButton(ID_FILE_NEW,CToolbarLabel(ID_FILE_NEW,_T("")));
//控制下拉按钮
m_wnd.EnableCustomizeButton (TRUE, (UINT)-1, _T("More Items"));
//获得工具栏的名称
m_wndToolBar.GetWindowText(str);
//以下在app.InitInstance中写才有效
///设置第一个按钮名称
pMainFrame->m_wnd.SetButtonText(0,L"")
///启动时隐藏工具栏
pMainFrame->m_wnd.ShowControlBar(0,0,0)
4、CBCGPDialogBar 自定义窗口 (派生使用) m_wnd
BCGPDialogBar.h
///IDD_FLOW_BAR 控件ID
if (!m_wnd.Create(_T("设计流程导航"), this, TRUE, IDD_FLOW_BAR,
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_BCGP_CLOSE ,
ID_VIEW_WORKSPACE))
{
TRACE0("Failed to create task pane\n");
return -1;
}
//图片列表
///IDB_WORKSPACE 图片ResourceId
CBCGPToolBarImages imagesWorkspace;
imagesWorkspace.SetImageSize (CSize (16, 16));
imagesWorkspace.SetTransparentColor (RGB (255, 0, 255));
imagesWorkspace.Load (IDB_WORKSPACE);
imagesWorkspace.SmoothResize(globalData.GetRibbonImageScale());
//设置当前停靠状态
m_wnd.EnableDocking (CBRS_ALIGN_LEFT);
m_wnd.SetIcon (imagesWorkspace.ExtractIcon (0), FALSE);
//加入布局
DockControlBar(&m_wnd);
//统一窗口风格
EnableVisualManagerStyle(1);
//初始化对话框
afx_msg LRESULT HandleInitDialog(WPARAM, LPARAM);
ON_MESSAGE(WM_INITDIALOG, HandleInitDialog)
LRESULT CFlowBar::HandleInitDialog( WPARAM wParam, LPARAM lParam )
{
LRESULT lRes = CBCGPDialogBar::HandleInitDialog(wParam, lParam);
ASSERT(m_lbFlow.GetSafeHwnd());
//m_btnReset.SetImage (IDB_RESET);
CImageList il;
CBCGPPngImage flow;
//IDB_FLOW
if (flow.Load (IDB_PNG_YESNO))
{
CBCGPToolBarImages::PreMultiplyAlpha((HBITMAP)flow.GetSafeHandle(), FALSE);
il.Create (32, 32, ILC_COLOR32, 0, 0);
il.Add (&flow, (CBitmap*) NULL);
m_lbFlow.SetImageList(il.Detach());
}
CBitmap bmp;
if (bmp.LoadBitmap (IDB_PART_TREE_NEW))
{
m_ilPart.Create (16, 16, ILC_COLOR24 | ILC_MASK, 6, 1);
m_ilPart.Add (&bmp, (CBitmap*) NULL);
m_partTree.SetImageList (&m_ilPart, TVSIL_NORMAL);
}
CBCGPStaticLayout* pLayout = (CBCGPStaticLayout*)GetLayout ();
if (pLayout != NULL)
{
pLayout->AddAnchor (IDC_LB_FLOW, CBCGPStaticLayout::e_MoveTypeNone, CBCGPStaticLayout::e_SizeTypeBoth);
pLayout->AddAnchor (IDC_PART, CBCGPStaticLayout::e_MoveTypeVert, CBCGPStaticLayout::e_SizeTypeHorz);
}
return lRes;
}
5、CBCGPDockingControlBar 停靠对话框 m_wnd
BCGPDockingControlBar.h
/// ID_VIEW_KNOWLEDGE 控件ID
if (!m_wnd.Create (_T("设计知识索引"), this, CRect (0, 0, 200, 200),
TRUE, ID_VIEW_KNOWLEDGE,
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI))
{
TRACE0("Failed to create Workspace bar\n");
return -1; // fail to create
}
m_wnd.SetIcon (imagesWorkspace.ExtractIcon (1), FALSE);
//m_wnd2 另外一个停靠对话框 ,进行相对布局
m_wnd.DockToWindow(&m_wnd2,CBRS_BOTTOM);
6、CBCGPPropList 属性列表控件 m_wnd
BCGPPropList.h
if (!m_wnd.Create (WS_VISIBLE | WS_CHILD, rectDummy, this, 1))
{
TRACE0("Failed to create Properies Grid \n");
return -1; // fail to create
}
m_wnd.EnableHeaderCtrl(FALSE);
m_wnd.EnableDescriptionArea();
m_wnd.SetVSDotNetLook();
m_wnd.MarkModifiedProperties();
m_wnd.EnableDescriptionArea(FALSE);
//移除所有
m_wnd.RemoveAll();
AddProperty();添加组
CBCGPProp 数值控件、组控件
CBCGPPropF(_T("位置(mm)"),_variant_t(112.13), _T(""));//值
CBCGPPropF(_T("信息"));//组
AddSubItem()添加子属性
CBCGPColorProp 颜色控件
CBCGPColorProp(_T("颜色"), RGB(255,255,255), NULL, _T("绘制颜色"));
CBCGPDateTimeProp 时间控件
7、CBCGPToolBarImages 图片列表
\BCGPToolBarImages.h
if (CBCGPToolBar::GetUserImages () == NULL)
{
// Load toolbar user images:
if (!m_UserImages.Load (_T(".\\UserImages.bmp")))
{
TRACE(_T("Failed to load user images\n"));
}
else
{
CBCGPToolBar::SetUserImages (&m_UserImages);
}
}
用在OnCreate函数之后,在构造视图对象和产生视图窗口之前
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
8、CBCGPWorkspace
BCGPWorkspace.h
class CArdsApp : public CWinApp,public CBCGPWorkspace
9、CBCGPMDIFrameWnd 主窗口
BCGPMDIFrameWnd.h
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MainTYPE))
return FALSE;
m_pMainWnd = pMainFrame;
10、CMultiDocTemplate* m_pDocTemplate;//doc模板
搭建一个自定义框架 【doc、Childframe、view】
///IDR_MainTYPE 程序生成的总type
m_pDocTemplate = new CMultiDocTemplate(IDR_MainTYPE,
RUNTIME_CLASS(CArdsDoc),
RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架
RUNTIME_CLASS(CMYView));
11、CBCGPPropertySheet 上一步、下一步对话框m_parentSheet
AddPage(&page);
CBCGPPropertyPage 对话框
virtual LRESULT OnWizardNext();
//下一步
LRESULT CNewWarheadPage::OnWizardNext()
{
// TODO: 在此添加专用代码和/或调用基类
m_parentSheet->AddPage(&Page2);
return CBCGPPropertyPage::OnWizardNext();
}
virtual BOOL OnSetActive();
//设置当前活动窗口 的按钮类型
BOOL CNewPage::OnSetActive()
{
// TODO: 在此添加专用代码和/或调用基类
((CBCGPPropertySheet*)GetParent())->SetWizardButtons(PSWIZB_NEXT );
return CBCGPPropertyPage::OnSetActive();
}
12、CBCGPPngImage 图片 png
if (png.Load (IDB_PNG_SHEET_PAGE1))
{
CBCGPToolBarImages::PreMultiplyAlpha((HBITMAP)png.GetSafeHandle(), FALSE);
CImageList il;
il.Create (32, 32, ILC_COLOR24, 0, 0);
il.Add (&pngLarge, (CBitmap*) NULL);
m_lbWarhead.SetImageList(il.Detach());
}
13、CBCGPGridCtrl 列表控件
virtual CString GetGroupName (int nGroupCol, CBCGPGridItem* pItem);
//设置组信息
TCHAR gDyMDTypeName[2][64]={
_T(" 主参数"),
_T("从参数"),
};
CString CIndexGrid::GetGroupName( int nGroupCol, CBCGPGridItem* pItem )
{
if(nGroupCol== 4)
{
CString strCmp;
strCmp= pItem->GetValue();
for(int i=0;i<2; i++)
{
if(strCmp.Compare(gDyIndexTypeName[i])== 0)
return strCmp;
}
}
return CBCGPGridCtrl::GetGroupName(nGroupCol,pItem);
}
virtual void OnItemChanged(CBCGPGridItem* pItem, int nRow, int nColumn);
void CGrid::OnItemChanged( CBCGPGridItem* pItem, int nRow, int nColumn )
{
if(m_iGridType)
SNDMSG(GetParent()->GetSafeHwnd(),SHL_DNDTARGET_CHANED_MSG,WPARAM(pItem),0);
return CBCGPGridCtrl::OnItemChanged(pItem,nRow,nColumn);
}
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
int CGrid::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CBCGPGridCtrl::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: 在此添加您专用的创建代码
CBCGPGridColors theme;
CBCGPVisualManager::GetInstance ()->OnSetGridColorTheme (this,theme);
SetColorTheme (theme);
SetWholeRowSel (TRUE);
SetSingleSel (TRUE);
SetWholeRowSel (FALSE);
EnableMarkSortedColumn (FALSE);
EnableHeader (TRUE, BCGP_GRID_HEADER_SELECT );
numeric_limits<double> ;
SetClearInplaceEditOnEnter (FALSE);
EnableInvertSelOnCtrl ();
DeleteAllColumns();
InsertColumn (0, _T(""), 50);
InsertColumn (1, _T("限制条件"), 50);
//SetColumnAlign(1,HDF_CENTER);
InsertColumn (2, _T("取值"), 50);
//SetColumnAlign(2,HDF_CENTER);
InsertColumn (3, _T("单位"), 50);
//SetColumnAlign(3,HDF_CENTER);
InsertColumn (4, _T("type"), 50);
SetColumnVisible(4,FALSE);
for(int i=0;i<GetColumnCount();i++)
{
SetHeaderAlign(i,HDF_CENTER);
}
InsertGroupColumn(0,4);
EnableColumnAutoSize();
return 0;
}
//创建单个子项目 -下拉选框
TCHAR gDx[3][64]={ //等效靶板类型
_T("<"),
_T("="),
_T(">")
};
CBCGPGridItem* pItem = new CBCGPGridItem(gDx[iType+1]);
for(int i=0; i<3; i++)
pItem->AddOption (gDx[i], 1);
pItem->SetData(COB_TYPE_COMPARE);
pItem->SetReadOnly(TRUE);
pItem->GetData();//获取未显示数据
pItem->GetValue();//获取显示数据
CBCGPGridRow 行nRow
nRow->GetItem(1) 第n行第一个
【UI-BCG】BCG相关类派生及创建方法
最新推荐文章于 2022-07-11 11:57:02 发布