⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treeviewfile.cpp

📁 这是一个能简单处理测量里面导线网平差的程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -