📄 mainfrm.cpp
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "Demo_DevStudio.h"
#include "TreeViewClass.h"
#include "TreeViewFile.h"
#include "TreeViewResource.h"
#include "Openwork.h"
#include "Demo_DevStudioDoc.h"
#include "MainFrm.h"
#include "afxdao.h"
#include "crack.h"
#include "rightpaneview.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
// ON_COMMAND_EX(CG_ID_VIEW_OUTPUT, OnBarCheck)
// ON_UPDATE_COMMAND_UI(CG_ID_VIEW_OUTPUT, OnUpdateControlBarMenu)
ON_COMMAND_EX(CG_ID_VIEW_WORKSPACE, OnBarCheck)
ON_UPDATE_COMMAND_UI(CG_ID_VIEW_WORKSPACE, OnUpdateControlBarMenu)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_COMMAND(ID_QISHIZG, OnQishizg)
ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
ON_COMMAND(ID_COMPUTER, OnComputer)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
}
CMainFrame::~CMainFrame()
{
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndToolBar.Create(this) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
// TODO: Remove this if you don't want tool tips or a resizeable toolbar
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
// Install cool menus.
InstallCoolMenus(this, IDR_MAINFRAME);
// Create the image list to be used with the control bars.
m_ImageList.Create(IDB_IMAGELIST, 13, 1, RGB(0,255,0));
// CG: The following block was inserted by the 'Dialog Bar' component
m_wndWorkspace.SetBtnImageList (&m_ImageList);
m_wndWorkspace.SetMenuID(IDR_POPUP);
// Initialize dialog bar m_wndWorkspace
if (!m_wndWorkspace.Create(this, CG_ID_VIEW_WORKSPACE,
_T("Workspace"), CSize(140,200)))
{
TRACE0("Failed to create dialog bar m_wndWorkspace\n");
return -1; // fail to create
}
m_wndWorkspace.AddView(_T("选择作业"), RUNTIME_CLASS(CTreeViewResource));
m_wndWorkspace.AddView(_T("选择操作"), RUNTIME_CLASS(CTreeViewFile));
m_wndWorkspace.SetBarStyle(m_wndWorkspace.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
m_wndWorkspace.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndWorkspace, AFX_IDW_DOCKBAR_LEFT);
return 0;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CMDIFrameWnd::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CMDIFrameWnd::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
CMDIFrameWnd::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
void CMainFrame::OnQishizg()
{
// TODO: Add your command handler code here
COpenwork m_opendlg;
m_opendlg.DoModal();
// m_opendlg.SetWindowText("输入起始坐标高程");
}
void CMainFrame::OnFileOpen()
{
// TODO: Add your command handler code here
COpenwork m_opendlg;
int hand=m_opendlg.DoModal();
//在此加入文件搜索到组合框
if(hand==2)
return;
CMultiDocTemplate* pDoctemplate;
CDemo_DevStudioApp* myapp=(CDemo_DevStudioApp*)AfxGetApp();
pDoctemplate=(CMultiDocTemplate*)myapp->m_template;
POSITION pos = pDoctemplate->GetFirstDocPosition();
CDemo_DevStudioDoc* pDoc=NULL;
CDemo_DevStudioDoc* mydoc=NULL;
while (pos != NULL)
{
pDoc =(CDemo_DevStudioDoc*) pDoctemplate->GetNextDoc(pos);
if(!strcmp(pDoc->m_workname,m_myworkname))
mydoc=pDoc;
}
if(mydoc)
{
mydoc->m_pchildframe->MDIMaximize();
}
else
{ AfxGetApp()->m_pDocManager->OnFileNew();
CChildFrame * m_pchildfrm=(CChildFrame*)GetActiveFrame();
m_pchildfrm->MDIMaximize();
pDoc=NULL;
pDoc=(CDemo_DevStudioDoc*)m_pchildfrm->GetActiveDocument();
pDoc->m_pchildframe=m_pchildfrm;
pDoc->m_workname=m_myworkname;
pDoc->m_viewname=1;
CTreeViewResource *p_view1=(CTreeViewResource*)m_wndWorkspace.GetView(0);
HTREEITEM item1;
item1= p_view1->GetTreeCtrl().InsertItem(m_myworkname);
pDoc->m_htreeitem=item1;
CTreeViewFile *p_view2=(CTreeViewFile*)m_wndWorkspace.GetView(1);
p_view2->GetTreeCtrl().DeleteAllItems();
p_view2->GetTreeCtrl().InsertItem("输入水平方向观测值");
p_view2->GetTreeCtrl().InsertItem("输入距离");
p_view2->GetTreeCtrl().InsertItem("输入已知点坐标高程");
p_view2->GetTreeCtrl().InsertItem("输入高差");
p_view2->GetTreeCtrl().InsertItem("输入起始方向值");
p_view2->GetTreeCtrl().InsertItem("导线网平差");
p_view2->GetTreeCtrl().InsertItem("水准网平差");
p_view2->GetTreeCtrl().InsertItem("展点略图");
p_view2->GetTreeCtrl().InsertItem("误差椭圆");
p_view2->GetTreeCtrl().InsertItem("平差成果");
pDoc->m_treeitem=item1;
// CString findname;
// findname=((CDemo_DevStudioApp*)AfxGetApp())->myAppPath+m_myworkname;
CDaoDatabase *m_dbase;
CDaoRecordset *m_recordset;
m_dbase=new CDaoDatabase;
try
{
m_dbase->Open(m_myworkname);
m_recordset=new CDaoRecordset(m_dbase);
}
catch(CDaoException* e)
{
e->ReportError();
delete m_dbase;
m_dbase=NULL;
e->Delete();
return;
}
if(m_recordset->IsOpen())
m_recordset->Close();
int row=1;
try
{CString strselect(_T("Select * From["));
strselect+="水平观测角";
strselect+=_T("]");
m_recordset->Open(dbOpenDynaset,strselect);
if(!m_recordset->CanUpdate())
return;
m_pchildfrm->m_bianjiview->m_pGridCtrl->DeleteNonFixedRows();
m_pchildfrm->m_bianjiview->m_pGridCtrl->SetRowCount(2);
while(!m_recordset->IsEOF())
{
COleVariant var1,var2,var3;
var1=m_recordset->GetFieldValue(0);
var2=m_recordset->GetFieldValue(1);
var3=m_recordset->GetFieldValue(2);
m_pchildfrm->m_bianjiview->m_pGridCtrl->SetItemText(row,0,CCrack::strVARIANT(var1));
m_pchildfrm->m_bianjiview->m_pGridCtrl->SetItemText(row,1,CCrack::strVARIANT(var2));
m_pchildfrm->m_bianjiview->m_pGridCtrl->SetItemText(row,2,CCrack::strVARIANT(var3));
m_pchildfrm->m_bianjiview->m_pGridCtrl->InsertRow("1");
row++;
m_recordset->MoveNext();
}
}
catch(CDaoException* e)
{
e->ReportError();
e->Delete();
return;
}
m_pchildfrm->m_bianjiview->m_pGridCtrl->SetItemText(row,0,"");
m_pchildfrm->m_bianjiview->m_pGridCtrl->Invalidate();
m_recordset->Close();
delete m_recordset;
m_dbase->Close();
delete m_dbase;
}
}
void CMainFrame::Deltreeitem(HTREEITEM hitem)
{
CTreeView* pview;
CTreeView* pview2;
pview=(CTreeView*)m_wndWorkspace.GetView(0);
if(!pview)MessageBox("发生系统错误");
pview->GetTreeCtrl().DeleteItem(hitem);
if(!pview->GetTreeCtrl().GetFirstVisibleItem())
{
pview2=(CTreeView*)m_wndWorkspace.GetView(1);
pview2->GetTreeCtrl().DeleteAllItems();
}
}
void CMainFrame::OnComputer()
{
// TODO: Add your command handler code here
//调用计算器
::WinExec("c:\\windows\\calc.exe",SW_SHOWNORMAL);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -