如何建立CDockablePane
要在CMainFrame类的OnCreate中实例化CDockablePane
m_pPropWnd->Create( TEXT("Properties"),
this,
CRect(10, 10, 200, 500),
TRUE,
1001,
WS_VISIBLE | CBRS_FLOAT_MULTI | WS_CHILD | CBRS_TOP,
AFX_CBRS_REGULAR_TABS,
AFX_DEFAULT_DOCKING_PANE_STYLE,
NULL );
EnableDocking( CBRS_ALIGN_RIGHT);
可以在CDockablePane的派生类中声明一个CDialog,然后在OnCreate方法中创建Dialog,这个Dialog就与DockablePane关联(为之子类),覆盖在Pane上面。
if( !m_TestDlg.Create(IDD_DIALOG_DOCKDLG, this))
{
MessageBox(TEXT("未能创建选项卡窗口"));
return -1;
}
m_TestDlg.ShowWindow( SW_SHOW );
也可以在Pane上创建其他控件,比如CComboBox:
m_pCcbComBox->Create( CBS_DROPDOWN | WS_CHILD | WS_VISIBLE, CRect(5, 0, 195, 60 ), this, 1002 );
m_pCcbComBox->AddString(TEXT("test1"));
m_pCcbComBox->AddString(TEXT("test2"));
比如:CMFCPropertyGridCtrl:
m_pPropertyGrid->Create( WS_VISIBLE | WS_CHILD, CRect( 5, 65, 195, 300 ), this, 1003 );
当然也可以给这个CMFCPropertyGridCtrl添加属性:
CMFCPropertyGridProperty * pProp = new CMFCPropertyGridProperty( TEXT("test"),3 );//这样就添加了一个test属性(这样就添加了一个属性页)(注意是属性页而非属性,是可以有+号扩展的)
当然可以给这个test添加下一级的项,比如添加font属性:
LOGFONT lf;
CMFCPropertyGridFontProperty *pProp1 = new CMFCPropertyGridFontProperty( TEXT("font"), lf );
pProp->AddSubItem( pProp1 );
m_pPropertyGrid->AddProperty( pProp );
最后是要把属性,或者是属性项添加到相应的父标签下的(由代码中可以看出,有些是AddProperty,有些是AddSubItem)。
要在CMainFrame类的OnCreate中实例化CDockablePane
m_pPropWnd->Create( TEXT("Properties"),
this,
CRect(10, 10, 200, 500),
TRUE,
1001,
WS_VISIBLE | CBRS_FLOAT_MULTI | WS_CHILD | CBRS_TOP,
AFX_CBRS_REGULAR_TABS,
AFX_DEFAULT_DOCKING_PANE_STYLE,
NULL );
EnableDocking( CBRS_ALIGN_RIGHT);
可以在CDockablePane的派生类中声明一个CDialog,然后在OnCreate方法中创建Dialog,这个Dialog就与DockablePane关联(为之子类),覆盖在Pane上面。
if( !m_TestDlg.Create(IDD_DIALOG_DOCKDLG, this))
{
MessageBox(TEXT("未能创建选项卡窗口"));
return -1;
}
m_TestDlg.ShowWindow( SW_SHOW );
也可以在Pane上创建其他控件,比如CComboBox:
m_pCcbComBox->Create( CBS_DROPDOWN | WS_CHILD | WS_VISIBLE, CRect(5, 0, 195, 60 ), this, 1002 );
m_pCcbComBox->AddString(TEXT("test1"));
m_pCcbComBox->AddString(TEXT("test2"));
比如:CMFCPropertyGridCtrl:
m_pPropertyGrid->Create( WS_VISIBLE | WS_CHILD, CRect( 5, 65, 195, 300 ), this, 1003 );
当然也可以给这个CMFCPropertyGridCtrl添加属性:
CMFCPropertyGridProperty * pProp = new CMFCPropertyGridProperty( TEXT("test"),3 );//这样就添加了一个test属性(这样就添加了一个属性页)(注意是属性页而非属性,是可以有+号扩展的)
当然可以给这个test添加下一级的项,比如添加font属性:
LOGFONT lf;
CMFCPropertyGridFontProperty *pProp1 = new CMFCPropertyGridFontProperty( TEXT("font"), lf );
pProp->AddSubItem( pProp1 );
m_pPropertyGrid->AddProperty( pProp );
最后是要把属性,或者是属性项添加到相应的父标签下的(由代码中可以看出,有些是AddProperty,有些是AddSubItem)。