类VC界面中,左边两个一个为"图层管理"的窗口,一个为"属性页"的View,如同VC的ClassView和SourceView一样;默认显示为图层管理窗口,右边是客户区View;问题在于
双击左边的客户区显示右边的属性页,也就是说改变TabCtrl的次序?int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)//在主窗口创建
{
///创建TAB Control
m_TabCtrl.Create(TCS_DOWN|WS_CHILD|WS_VISIBLE,CRect(0,0,100,100),&m_wndLayerBar,ID_TABCTRL);
//
//加了一个图层管理
m_pWndManagerLayer->Create(AfxRegisterWndClass(CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW, AfxGetApp()->LoadStandardCursor(IDC_SIZE), (HBRUSH)GetStockObject(LTGRAY_BRUSH), NULL),
NULL,
WS_CHILD|WS_VISIBLE,
CRect(0,0,100,100),
&m_TabCtrl,
ID_LAYERMANAGER);
m_pWndManagerLayer->ModifyStyleEx(0, WS_EX_CLIENTEDGE);
//
//加了一个属性页
m_pPropertyView->Create(AfxRegisterWndClass(CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW, AfxGetApp()->LoadStandardCursor(IDC_CROSS), (HBRUSH)GetStockObject(LTGRAY_BRUSH), NULL),
NULL,
WS_CHILD|WS_VISIBLE,
CRect(0,0,100,100),
&m_TabCtrl,
ID_PROPERTY_PAGE);
m_pPropertyView->ModifyStyleEx(0, WS_EX_CLIENTEDGE);
m_wndLayerBar.EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndLayerBar, AFX_IDW_DOCKBAR_LEFT,CRect(0,0,200,220));
m_TabCtrl.AddPage(m_pWndManagerLayer,"图层管理",IDI_ICON_LAYER);
m_TabCtrl.AddPage(m_pPropertyView,"属性页",IDI_ICON_LAYER);
m_TabCtrl.UpdateWindow();
}根据王骏先生的示例代码中提供了一个称为CCoolTabCtrl的封装类,我也创建了一个类似的东东.
BOOL CCoolTabCtrl::AddPage(CRuntimeClass* pClass,UINT nIDTemplate, LPCTSTR sText, UINT IconID)
{
CDialog *pDlg = (CDialog*)pClass->CreateObject();
if(pDlg != NULL)
if(pDlg->Create(nIDTemplate,this))
{
CPageItem *pItem;
pItem = new CPageItem();
pItem->m_pWnd = (CWnd*)pDlg;
pItem->m_nStyle = 1;///Dialog
pItem->m_sText = sText;
if(IconID)
pItem->m_hIcon = AfxGetApp()->LoadIcon(IconID);
else
pItem->m_hIcon = NULL;
CRect rect;
GetClientRect(rect);
pDlg->MoveWindow(rect);
m_PageList.AddTail(pItem);
return TRUE;
}
return FALSE;
}
如何让属性页显示呢?请高手指教/////////////////////已在客户区建立了一个双击事件,
void CDigitalMapView::OnDblClickSupermap()
{
}
双击左边的客户区显示右边的属性页,也就是说改变TabCtrl的次序?int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)//在主窗口创建
{
///创建TAB Control
m_TabCtrl.Create(TCS_DOWN|WS_CHILD|WS_VISIBLE,CRect(0,0,100,100),&m_wndLayerBar,ID_TABCTRL);
//
//加了一个图层管理
m_pWndManagerLayer->Create(AfxRegisterWndClass(CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW, AfxGetApp()->LoadStandardCursor(IDC_SIZE), (HBRUSH)GetStockObject(LTGRAY_BRUSH), NULL),
NULL,
WS_CHILD|WS_VISIBLE,
CRect(0,0,100,100),
&m_TabCtrl,
ID_LAYERMANAGER);
m_pWndManagerLayer->ModifyStyleEx(0, WS_EX_CLIENTEDGE);
//
//加了一个属性页
m_pPropertyView->Create(AfxRegisterWndClass(CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW, AfxGetApp()->LoadStandardCursor(IDC_CROSS), (HBRUSH)GetStockObject(LTGRAY_BRUSH), NULL),
NULL,
WS_CHILD|WS_VISIBLE,
CRect(0,0,100,100),
&m_TabCtrl,
ID_PROPERTY_PAGE);
m_pPropertyView->ModifyStyleEx(0, WS_EX_CLIENTEDGE);
m_wndLayerBar.EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndLayerBar, AFX_IDW_DOCKBAR_LEFT,CRect(0,0,200,220));
m_TabCtrl.AddPage(m_pWndManagerLayer,"图层管理",IDI_ICON_LAYER);
m_TabCtrl.AddPage(m_pPropertyView,"属性页",IDI_ICON_LAYER);
m_TabCtrl.UpdateWindow();
}根据王骏先生的示例代码中提供了一个称为CCoolTabCtrl的封装类,我也创建了一个类似的东东.
BOOL CCoolTabCtrl::AddPage(CRuntimeClass* pClass,UINT nIDTemplate, LPCTSTR sText, UINT IconID)
{
CDialog *pDlg = (CDialog*)pClass->CreateObject();
if(pDlg != NULL)
if(pDlg->Create(nIDTemplate,this))
{
CPageItem *pItem;
pItem = new CPageItem();
pItem->m_pWnd = (CWnd*)pDlg;
pItem->m_nStyle = 1;///Dialog
pItem->m_sText = sText;
if(IconID)
pItem->m_hIcon = AfxGetApp()->LoadIcon(IconID);
else
pItem->m_hIcon = NULL;
CRect rect;
GetClientRect(rect);
pDlg->MoveWindow(rect);
m_PageList.AddTail(pItem);
return TRUE;
}
return FALSE;
}
如何让属性页显示呢?请高手指教/////////////////////已在客户区建立了一个双击事件,
void CDigitalMapView::OnDblClickSupermap()
{
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货