📄 treeviewfile.cpp
字号:
// TreeViewFile.cpp : implementation file
//
#include "stdafx.h"
#include "Demo_DevStudio.h"
#include "TreeViewFile.h"
#include "Demo_DevStudioDoc.h"
#include "MainFrm.h"
#include "afxdao.h"
#include "crack.h"
#include "pingcha.h"
#include "math.h"
#include "pingchaview.h"
#include "jcView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define pi 3.1415926
/////////////////////////////////////////////////////////////////////////////
// CTreeViewFile
IMPLEMENT_DYNCREATE(CTreeViewFile, CTreeView)
CTreeViewFile::CTreeViewFile()
{
}
CTreeViewFile::~CTreeViewFile()
{
}
BEGIN_MESSAGE_MAP(CTreeViewFile, CTreeView)
//{{AFX_MSG_MAP(CTreeViewFile)
ON_NOTIFY_REFLECT(TVN_ITEMEXPANDING, OnItemexpanding)
ON_NOTIFY_REFLECT(TVN_SELCHANGED, OnSelchanged)
ON_WM_CREATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTreeViewFile drawing
void CTreeViewFile::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}
/////////////////////////////////////////////////////////////////////////////
// CTreeViewFile diagnostics
#ifdef _DEBUG
void CTreeViewFile::AssertValid() const
{
CTreeView::AssertValid();
}
void CTreeViewFile::Dump(CDumpContext& dc) const
{
CTreeView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CTreeViewFile message handlers
void CTreeViewFile::OnItemexpanding(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
extern CString liushiyunsuan(double m_str1,double m_str2)
{ m_str1=m_str1*10000+0.1;
m_str2=m_str2*10000+0.1;
int b1,b2,c1,c2,d1,d2,e1,e2,data1,data2;
data1=int(m_str1);
data2=int(m_str2);
b1=data1%100;
c1=int(data1/100);
d1=c1%100;
e1=c1/100;
b2=data2%100;
c2=int(data2/100);
d2=c2%100;
e2=int(c2/100);
// if(b1>=60||b2>=60||d1>=60||d2>=60||e1<0||e2<0)
// {
//MessageBox("输入错误");
// return ;
// }
if(b1>=b2)
b1=b1-b2;
else
{
b1=b1-b2+60;
d1-=1;
}
if(d1>=d2)
d1=d1-d2;
else
{d1=d1-d2+60;
e1-=1;
}
if(e1>=e2)
e1=e1-e2;
else
e1=e1-e2+360;
CString p_str1,p_str2,p_str3,p_str4;
if(d1>=0&&d1<10)
p_str1.Format("0%d",d1);
else
p_str1.Format("%d",d1);
if(b1>=0&&b1<10)
p_str2.Format("0%d",b1);
else
p_str2.Format("%d",b1);
p_str3.Format("%d.",e1);
p_str4=p_str3+p_str1+p_str2;
return p_str4;
}
extern double liushizshi(double liudata)
{ liudata=liudata*10000;
int mydata=(int)liudata;
int c1,c2,c3,c4;
c1=mydata%100;
c2=mydata/100;
c3=c2%100;
c4=c2/100;
double shidata;
shidata=c4*pi/180+c3*pi/10800+c1*pi/648000;
return shidata;
}
void CTreeViewFile::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
CMainFrame* p_mainfrm;
p_mainfrm=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CTreeCtrl* m_ptreectrl;
m_ptreectrl=&GetTreeCtrl();
if(m_ptreectrl)
{
HTREEITEM hSelectedItem = m_ptreectrl->GetSelectedItem();
if(hSelectedItem)
{
CString p_treestr;
p_treestr=m_ptreectrl->GetItemText(hSelectedItem);
CChildFrame* pchildframe;
pchildframe=(CChildFrame*)p_mainfrm->GetActiveFrame();
if(!pchildframe)
return;
if(!pchildframe->m_bianjiview->m_pGridCtrl)
return;
CDemo_DevStudioDoc *mydoc=(CDemo_DevStudioDoc*)pchildframe->GetActiveDocument();
if(!mydoc)
return;
CString dbname=mydoc->m_workname;
CDaoDatabase *m_database;
CDaoRecordset *m_recordset;
m_database=new CDaoDatabase;
try
{
m_database->Open(dbname);
m_recordset=new CDaoRecordset(m_database);
}
catch(CDaoException* e)
{
e->ReportError();
delete m_database;
m_database=NULL;
e->Delete();
return;
}
if(m_recordset->IsOpen())
m_recordset->Close();
if(!strcmp(p_treestr,"输入距离"))
{
int row=1;
pchildframe->m_bianjiview->m_pGridCtrl->DeleteNonFixedRows();
pchildframe->m_bianjiview->m_pGridCtrl->Invalidate();
pchildframe->m_bianjiview->m_pGridCtrl->SetColumnCount(3);
static char* xm[]={"起点","末点","距离"};
for(int i=0;i<3;i++)
pchildframe->m_bianjiview->m_pGridCtrl->SetItemText(0,i,xm[i]);
pchildframe->m_bianjiview->m_pGridCtrl->SetRowCount(2);
pchildframe->m_bianjiview->m_pGridCtrl->Invalidate();
mydoc->m_viewname=2;
try
{
CString strselect(_T("Select * From["));
strselect+="距离";
strselect+=_T("]");
m_recordset->Open(dbOpenDynaset,strselect);
if(!m_recordset->CanUpdate())
return;
while(!m_recordset->IsEOF())
{
COleVariant var1,var2,var3;
var1=m_recordset->GetFieldValue(0);
var2=m_recordset->GetFieldValue(1);
var3=m_recordset->GetFieldValue(2);
pchildframe->m_bianjiview->m_pGridCtrl->SetItemText(row,0,CCrack::strVARIANT(var1));
pchildframe->m_bianjiview->m_pGridCtrl->SetItemText(row,1,CCrack::strVARIANT(var2));
pchildframe->m_bianjiview->m_pGridCtrl->SetItemText(row,2,CCrack::strVARIANT(var3));
row++;
pchildframe->m_bianjiview->m_pGridCtrl->InsertRow("1");
m_recordset->MoveNext();
}
}
catch(CDaoException* e)
{
e->ReportError();
e->Delete();
return;
}
pchildframe->m_bianjiview->m_pGridCtrl->Invalidate();
pchildframe->m_bianjiview->m_pGridCtrl->SetItemText(row,0,"");
m_recordset->Close();
}
if(!strcmp(p_treestr,"输入高差"))
{ int row=1;
pchildframe->m_bianjiview->m_pGridCtrl->DeleteNonFixedRows();
pchildframe->m_bianjiview->m_pGridCtrl->Invalidate();
pchildframe->m_bianjiview->m_pGridCtrl->SetColumnCount(3);
//pchildframe->m_bianjiview->m_pGridCtrl-> SetFixedRowCount(2);
static char* xm[]={"起点","末点","高差"};
for(int i=0;i<3;i++)
pchildframe->m_bianjiview->m_pGridCtrl->SetItemText(0,i,xm[i]);
pchildframe->m_bianjiview->m_pGridCtrl->SetRowCount(2);
pchildframe->m_bianjiview->m_pGridCtrl->Invalidate();
mydoc->m_viewname=3;
try
{
CString strselect(_T("Select * From["));
strselect+="高差";
strselect+=_T("]");
m_recordset->Open(dbOpenDynaset,strselect);
if(!m_recordset->CanUpdate())
return;
while(!m_recordset->IsEOF())
{
COleVariant var1,var2,var3;
var1=m_recordset->GetFieldValue(0);
var2=m_recordset->GetFieldValue(1);
var3=m_recordset->GetFieldValue(2);
pchildframe->m_bianjiview->m_pGridCtrl->SetItemText(row,0,CCrack::strVARIANT(var1));
pchildframe->m_bianjiview->m_pGridCtrl->SetItemText(row,1,CCrack::strVARIANT(var2));
pchildframe->m_bianjiview->m_pGridCtrl->SetItemText(row,2,CCrack::strVARIANT(var3));
row++;
pchildframe->m_bianjiview->m_pGridCtrl->InsertRow("1");
m_recordset->MoveNext();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -