多文挡程序的界面如下:
子窗口的左侧为数视图,右侧问datargrid控件视图
数据库的连接没问题主要代码如下void CLeftTreeView::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
m_ImageSmall.Create (16, 16, TRUE, 5, 1);
HICON hIconJob = AfxGetApp()->LoadIcon(IDI_JOB);
ASSERT(hIconJob); m_ImageSmall.Add(hIconJob); HICON hIconStation = AfxGetApp()->LoadIcon(IDI_STATION);
ASSERT(hIconStation); m_ImageSmall.Add(hIconStation); HICON hIconSub = AfxGetApp()->LoadIcon(IDI_DATA);
ASSERT(hIconSub); m_ImageSmall.Add(hIconSub);
HICON hIconSelected = AfxGetApp()->LoadIcon(IDI_SELECTED);
ASSERT(hIconSelected); m_ImageSmall.Add(hIconSelected);
HICON hIconCal= AfxGetApp()->LoadIcon(IDI_CAL);
ASSERT(hIconCal); m_ImageSmall.Add(hIconCal);
GetTreeCtrl().SetImageList( &m_ImageSmall, TVSIL_NORMAL );
::SetWindowLong(m_hWnd,GWL_STYLE,WS_VISIBLE | WS_TABSTOP
| WS_CHILD | WS_BORDER| TVS_HASBUTTONS
| TVS_LINESATROOT | TVS_HASLINES
| TVS_DISABLEDRAGDROP|TVS_SHOWSELALWAYS);
HTREEITEM hTreeJob=GetTreeCtrl().InsertItem("工作", 0, 3);
HTREEITEM hTreeS1=GetTreeCtrl().InsertItem("Stn1", 1, 3,hTreeJob);
HTREEITEM hTreeDir1=GetTreeCtrl().InsertItem("定向测量", 2, 3,hTreeS1);
HTREEITEM hTreeObj1=GetTreeCtrl().InsertItem("物方测量", 2, 3,hTreeS1);
HTREEITEM hTreeS2=GetTreeCtrl().InsertItem("Stn2", 1, 3,hTreeJob);
HTREEITEM hTreeDir2=GetTreeCtrl().InsertItem("定向测量", 2, 3,hTreeS2);
HTREEITEM hTreeObj2=GetTreeCtrl().InsertItem("物方测量", 2, 3,hTreeS2);
HTREEITEM hTreeCal=GetTreeCtrl().InsertItem("解算", 4, 3,hTreeJob);
GetTreeCtrl().Expand(hTreeJob, TVE_EXPAND);
GetTreeCtrl().Expand(hTreeS1, TVE_EXPAND);
GetTreeCtrl().Expand(hTreeS2, TVE_EXPAND);
GetTreeCtrl().Expand(hTreeCal, TVE_EXPAND);
}void CLeftTreeView::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
//获得被选择项
CTreeCtrl* pCtrl = &GetTreeCtrl();
HTREEITEM hSelItem = pCtrl->GetSelectedItem();
m_hHitItem = hSelItem;
if (hSelItem==NULL)
return;
HTREEITEM hParentItem = pCtrl->GetParentItem(hSelItem);
if (hParentItem==NULL)
return;
CString strParentName = pCtrl->GetItemText(hParentItem);
CString strSelName = pCtrl->GetItemText(hSelItem);
CChildFrame* pChild=(CChildFrame*)this->GetParentFrame();
CRightFormView* pView=(CRightFormView*)pChild->m_wndSplitter.GetPane(0,1);
if (strSelName=="定向测量" && strParentName=="Stn1")
{
pView->UpdateGridDetails("Stn1定向测量");//Stn1定向测量-数据库中一表名
}
*pResult = 0;
}
void CRightFormView::UpdateGridDetails(const CString &sTableName)
{
try
{
// CString str;
// str.Format("SELECT * FROM %s",sTableName);
m_pRecordset->CursorLocation = adUseClient;
m_pRecordset->Open((LPCSTR)sTableName, theApp.m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockOptimistic, adCmdTable);
}
catch (_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
m_ctrlDataGrid.SetRefDataSource(NULL);
m_ctrlDataGrid.SetRefDataSource( (LPUNKNOWN) m_pRecordset);
m_ctrlDataGrid.Refresh();
UpdateData(FALSE);
}
子窗口的左侧为数视图,右侧问datargrid控件视图
数据库的连接没问题主要代码如下void CLeftTreeView::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
m_ImageSmall.Create (16, 16, TRUE, 5, 1);
HICON hIconJob = AfxGetApp()->LoadIcon(IDI_JOB);
ASSERT(hIconJob); m_ImageSmall.Add(hIconJob); HICON hIconStation = AfxGetApp()->LoadIcon(IDI_STATION);
ASSERT(hIconStation); m_ImageSmall.Add(hIconStation); HICON hIconSub = AfxGetApp()->LoadIcon(IDI_DATA);
ASSERT(hIconSub); m_ImageSmall.Add(hIconSub);
HICON hIconSelected = AfxGetApp()->LoadIcon(IDI_SELECTED);
ASSERT(hIconSelected); m_ImageSmall.Add(hIconSelected);
HICON hIconCal= AfxGetApp()->LoadIcon(IDI_CAL);
ASSERT(hIconCal); m_ImageSmall.Add(hIconCal);
GetTreeCtrl().SetImageList( &m_ImageSmall, TVSIL_NORMAL );
::SetWindowLong(m_hWnd,GWL_STYLE,WS_VISIBLE | WS_TABSTOP
| WS_CHILD | WS_BORDER| TVS_HASBUTTONS
| TVS_LINESATROOT | TVS_HASLINES
| TVS_DISABLEDRAGDROP|TVS_SHOWSELALWAYS);
HTREEITEM hTreeJob=GetTreeCtrl().InsertItem("工作", 0, 3);
HTREEITEM hTreeS1=GetTreeCtrl().InsertItem("Stn1", 1, 3,hTreeJob);
HTREEITEM hTreeDir1=GetTreeCtrl().InsertItem("定向测量", 2, 3,hTreeS1);
HTREEITEM hTreeObj1=GetTreeCtrl().InsertItem("物方测量", 2, 3,hTreeS1);
HTREEITEM hTreeS2=GetTreeCtrl().InsertItem("Stn2", 1, 3,hTreeJob);
HTREEITEM hTreeDir2=GetTreeCtrl().InsertItem("定向测量", 2, 3,hTreeS2);
HTREEITEM hTreeObj2=GetTreeCtrl().InsertItem("物方测量", 2, 3,hTreeS2);
HTREEITEM hTreeCal=GetTreeCtrl().InsertItem("解算", 4, 3,hTreeJob);
GetTreeCtrl().Expand(hTreeJob, TVE_EXPAND);
GetTreeCtrl().Expand(hTreeS1, TVE_EXPAND);
GetTreeCtrl().Expand(hTreeS2, TVE_EXPAND);
GetTreeCtrl().Expand(hTreeCal, TVE_EXPAND);
}void CLeftTreeView::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
//获得被选择项
CTreeCtrl* pCtrl = &GetTreeCtrl();
HTREEITEM hSelItem = pCtrl->GetSelectedItem();
m_hHitItem = hSelItem;
if (hSelItem==NULL)
return;
HTREEITEM hParentItem = pCtrl->GetParentItem(hSelItem);
if (hParentItem==NULL)
return;
CString strParentName = pCtrl->GetItemText(hParentItem);
CString strSelName = pCtrl->GetItemText(hSelItem);
CChildFrame* pChild=(CChildFrame*)this->GetParentFrame();
CRightFormView* pView=(CRightFormView*)pChild->m_wndSplitter.GetPane(0,1);
if (strSelName=="定向测量" && strParentName=="Stn1")
{
pView->UpdateGridDetails("Stn1定向测量");//Stn1定向测量-数据库中一表名
}
*pResult = 0;
}
void CRightFormView::UpdateGridDetails(const CString &sTableName)
{
try
{
// CString str;
// str.Format("SELECT * FROM %s",sTableName);
m_pRecordset->CursorLocation = adUseClient;
m_pRecordset->Open((LPCSTR)sTableName, theApp.m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockOptimistic, adCmdTable);
}
catch (_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
m_ctrlDataGrid.SetRefDataSource(NULL);
m_ctrlDataGrid.SetRefDataSource( (LPUNKNOWN) m_pRecordset);
m_ctrlDataGrid.Refresh();
UpdateData(FALSE);
}
{
CTreeView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
m_ImageSmall.Create (16, 16, TRUE, 5, 1);
HICON hIconJob = AfxGetApp()->LoadIcon(IDI_JOB);
ASSERT(hIconJob); m_ImageSmall.Add(hIconJob); HICON hIconStation = AfxGetApp()->LoadIcon(IDI_STATION);
ASSERT(hIconStation); m_ImageSmall.Add(hIconStation); HICON hIconSub = AfxGetApp()->LoadIcon(IDI_DATA);
ASSERT(hIconSub); m_ImageSmall.Add(hIconSub);
HICON hIconSelected = AfxGetApp()->LoadIcon(IDI_SELECTED);
ASSERT(hIconSelected); m_ImageSmall.Add(hIconSelected);
HICON hIconCal= AfxGetApp()->LoadIcon(IDI_CAL);
ASSERT(hIconCal); m_ImageSmall.Add(hIconCal);
GetTreeCtrl().SetImageList( &m_ImageSmall, TVSIL_NORMAL );
::SetWindowLong(m_hWnd,GWL_STYLE,WS_VISIBLE | WS_TABSTOP
| WS_CHILD | WS_BORDER| TVS_HASBUTTONS
| TVS_LINESATROOT | TVS_HASLINES
| TVS_DISABLEDRAGDROP|TVS_SHOWSELALWAYS);
HTREEITEM hTreeJob=GetTreeCtrl().InsertItem("工作", 0, 3);
HTREEITEM hTreeS1=GetTreeCtrl().InsertItem("Stn1", 1, 3,hTreeJob);
HTREEITEM hTreeDir1=GetTreeCtrl().InsertItem("定向测量", 2, 3,hTreeS1);
HTREEITEM hTreeObj1=GetTreeCtrl().InsertItem("物方测量", 2, 3,hTreeS1);
HTREEITEM hTreeS2=GetTreeCtrl().InsertItem("Stn2", 1, 3,hTreeJob);
HTREEITEM hTreeDir2=GetTreeCtrl().InsertItem("定向测量", 2, 3,hTreeS2);
HTREEITEM hTreeObj2=GetTreeCtrl().InsertItem("物方测量", 2, 3,hTreeS2);
HTREEITEM hTreeCal=GetTreeCtrl().InsertItem("解算", 4, 3,hTreeJob);
GetTreeCtrl().Expand(hTreeJob, TVE_EXPAND);
GetTreeCtrl().Expand(hTreeS1, TVE_EXPAND);
GetTreeCtrl().Expand(hTreeS2, TVE_EXPAND);
GetTreeCtrl().Expand(hTreeCal, TVE_EXPAND);
}void CLeftTreeView::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
//获得被选择项
CTreeCtrl* pCtrl = &GetTreeCtrl();
HTREEITEM hSelItem = pCtrl->GetSelectedItem();
m_hHitItem = hSelItem;
if (hSelItem==NULL)
return;
HTREEITEM hParentItem = pCtrl->GetParentItem(hSelItem);
if (hParentItem==NULL)
return;
CString strParentName = pCtrl->GetItemText(hParentItem);
CString strSelName = pCtrl->GetItemText(hSelItem);
CChildFrame* pChild=(CChildFrame*)this->GetParentFrame();
CRightFormView* pView=(CRightFormView*)pChild->m_wndSplitter.GetPane(0,1);
if (strSelName=="定向测量" && strParentName=="Stn1")
{
pView->UpdateGridDetails("Stn1定向测量");//Stn1定向测量-数据库中一表名
}
*pResult = 0;
}
void CRightFormView::UpdateGridDetails(const CString &sTableName)
{
try
{
// CString str;
// str.Format("SELECT * FROM %s",sTableName);
m_pRecordset->CursorLocation = adUseClient;
m_pRecordset->Open((LPCSTR)sTableName, theApp.m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockOptimistic, adCmdTable);
}
catch (_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
m_ctrlDataGrid.SetRefDataSource(NULL);
m_ctrlDataGrid.SetRefDataSource( (LPUNKNOWN) m_pRecordset);
m_ctrlDataGrid.Refresh();
UpdateData(FALSE);
}