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

📄 mainfrm.cpp

📁 这是本人两年前兼职为某个公司做的石油钻进设计软件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "CVenus.h"

#include "MainFrm.h"

//#include "TreeViewProject.h"
//#include "TreeViewOperation.h"

// The following are for spd;
#include	"DialogSDT.h"
#include "DialogNewProject.h"
#include "DialogProjectModify.h"
#include "SourceDataView.h"
#include "NewSourceDataView.h"

//#include "DialogShotPara.h"
#include "ShotParaView.h"

#include "OilShotParaSelectView.h"
#include "GasShotParaSelectView.h"

#include "OilShotForecastView.h"
#include "GasShotForecastView.h"

#include "OilSandDesign.h"
#include "GasSandDesign.h"

#include "OilMinusPressView.h"
#include "GasMinusPressView.h"

#include "OilSandPressDesign.h"
#include "GasSandPressDesign.h"

//#include "DialogTextReport.h"
#include "TextReportView.h"

//#include "Graph.h"
#include "NewGraph.h"

#include	"ChildFrm.h"
#include	"CVenusDoc.h"

// The following are for Shwrj
#include	"ShwrjChildFrame.h"

#include	"SjsrForm.h"
#include "WdycForm.h"
#include "TjflxForm.h"
#include "ThmtbForm.h"

#include "SrhfForm.h"
#include "SrbdForm.h"
#include "SrhlForm.h"
#include "CzwdForm.h"
#include "CzylForm.h"

#include "TrqhslForm.h"
#include "SxqthslForm.h"

// The following are for Shwrj
#include	"TGBasForm.h"
#include	"TGCac.h"
#include "Splash.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#define	_LOCKWINDOWS

#ifdef	_LOCKWINDOWS
#define		LockMyWindowUpdate()	LockWindowUpdate()
#define		UnlockMyWindowUpdate()	UnlockWindowUpdate()
#else
#define		LockMyWindowUpdate()	
#define		UnlockMyWindowUpdate()	
#endif


/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	ON_COMMAND(IDM_WORKSPACE, OnWorkspace)
	ON_UPDATE_COMMAND_UI(IDM_WORKSPACE, OnUpdateWorkspace)
	ON_COMMAND(ID_ALWAYS_TOPMOST, OnAlwaysTopmost)
	ON_UPDATE_COMMAND_UI(ID_ALWAYS_TOPMOST, OnUpdateAlwaysTopmost)
	ON_COMMAND(ID_DATA_SDT, OnDataSdt)
	ON_COMMAND(ID_INIT_FILE_NEW, OnInitFileNew)
	ON_COMMAND(ID_FILE_MRU_FILE1, OnFileMruFile1)
	ON_COMMAND(ID_FILE_MRU_FILE2, OnFileMruFile2)
	ON_COMMAND(ID_FILE_MRU_FILE3, OnFileMruFile3)
	ON_COMMAND(ID_FILE_MRU_FILE4, OnFileMruFile4)
	ON_COMMAND(ID_SPD_SAVE_USER, OnSpdSaveUser)
	ON_COMMAND(ID_SPD_SAVE_AS_USER, OnSpdSaveAsUser)
	ON_COMMAND(ID_INIT_FILE_OPEN, OnInitFileOpen)
	ON_COMMAND(ID_SPD_CLOSEPROJECT, OnSpdCloseproject)
	ON_COMMAND(ID_DATA_EDITPROJECTINFO, OnDataEditprojectinfo)
	ON_COMMAND(ID_DATA_INPUT, OnDataInput)
	ON_COMMAND(ID_SD_SPR, OnSdSpr)
	ON_COMMAND(ID_MENUITEM_SHOTPARASELECT, OnMenuitemShotparaselect)
	ON_COMMAND(ID_MENUITEM_SHOTFORECAST, OnMenuitemShotforecast)
	ON_COMMAND(ID_MENUITEM_SANDDESIGN, OnMenuitemSanddesign)
	ON_COMMAND(ID_MENUITEM33798, OnMenuitem33798)
	ON_COMMAND(ID_MENUITEM33799, OnMenuitem33799)
	ON_COMMAND(ID_MENUITEM_WORD, OnMenuitemWord)
	ON_COMMAND(ID_MENUITEM_GAS_PAINT_KSKM, OnMenuitemGasPaintKskm)
	ON_COMMAND(ID_MENUITEM_SCALE, OnMenuitemScale)
	ON_COMMAND(ID_MENUITEM_GAS_PAINT_KSXW, OnMenuitemGasPaintKsxw)
	ON_COMMAND(ID_MENUITEM_GAS_PAINT_KSKJ, OnMenuitemGasPaintKskj)
	ON_COMMAND(ID_MENUITEM_GAS_PAINT_KSDP, OnMenuitemGasPaintKsdp)
	ON_COMMAND(ID_MENUITEM_GAS_PAINT_KSYC, OnMenuitemGasPaintKsyc)
	ON_COMMAND(ID_MENUITEM_GAS_PAINT_KSPK, OnMenuitemGasPaintKspk)
	ON_COMMAND(ID_MENUITEM_GAS_PAINT_KSWC, OnMenuitemGasPaintKswc)
	ON_COMMAND(ID_MENUITEM_GAS_PAINT_KSKZR, OnMenuitemGasPaintKskzr)
	ON_COMMAND(ID_MENUITEM_OIL_PAINT_KSKM, OnMenuitemOilPaintKskm)
	ON_COMMAND(ID_MENUITEM_OIL_PAINT_KSXW, OnMenuitemOilPaintKsxw)
	ON_COMMAND(ID_MENUITEM_OIL_PAINT_KZRXW, OnMenuitemOilPaintKzrxw)
	ON_COMMAND(ID_MENUITEM_OIL_PAINT_KSKJ, OnMenuitemOilPaintKskj)
	ON_COMMAND(ID_MENUITEM_OIL_PAINT_KSYH, OnMenuitemOilPaintKsyh)
	ON_COMMAND(ID_MENUITEM_OIL_PAINT_KSYC, OnMenuitemOilPaintKsyc)
	ON_COMMAND(ID_MENUITEM_OIL_PAINT_KSWH, OnMenuitemOilPaintKswh)
	ON_COMMAND(ID_MENUITEM_OIL_PAINT_WHFKS, OnMenuitemOilPaintWhfks)
	ON_COMMAND(ID_MENUITEM_OIL_PAINT_KSWC, OnMenuitemOilPaintKswc)
	ON_COMMAND(ID_MENUITEM_OIL_PAINT_KSKZR, OnMenuitemOilPaintKskzr)
	ON_COMMAND(ID_VIEW_SPDTOOLBAR, OnViewSpdtoolbar)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SPDTOOLBAR, OnUpdateViewSpdtoolbar)
	ON_COMMAND(ID_VIEW_SPDWORKSPACE, OnViewSpdworkspace)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SPDWORKSPACE, OnUpdateViewSpdworkspace)
	ON_COMMAND(ID_VIEW_SHWRJTOOLBAR, OnViewShwrjtoolbar)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SHWRJTOOLBAR, OnUpdateViewShwrjtoolbar)
	ON_COMMAND(ID_VIEW_SHWRJWORKSPACE, OnViewShwrjworkspace)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SHWRJWORKSPACE, OnUpdateViewShwrjworkspace)
	ON_COMMAND(ID_YL, OnYl)
	ON_COMMAND(ID_WD, OnWd)
	ON_COMMAND(ID_TJRLX, OnTjrlx)
	ON_COMMAND(ID_THMB, OnThmb)
	ON_COMMAND(ID_h, Onh)
	ON_COMMAND(ID_ice, Onice)
	ON_COMMAND(ID_hl, Onhl)
	ON_COMMAND(ID_czwd, Onczwd)
	ON_COMMAND(ID_czyl, Onczyl)
	ON_COMMAND(ID_hsl, Onhsl)
	ON_COMMAND(ID_sxhsl, Onsxhsl)
	ON_COMMAND(ID_VIEW_TGTOOLBAR, OnViewTgtoolbar)
	ON_UPDATE_COMMAND_UI(ID_VIEW_TGTOOLBAR, OnUpdateViewTgtoolbar)
	ON_COMMAND(IDM_TG_BAS, OnTgBas)
	ON_COMMAND(IDM_TG_SECURITY, OnTgSecurity)
	ON_COMMAND(IDM_TG_NEW, OnTgNew)
	ON_COMMAND(IDM_TG_OPEN, OnTgOpen)
	ON_COMMAND(IDM_TG_SAVE, OnTgSave)
	ON_COMMAND(IDM_TG_DATABASE, OnTgDatabase)
	ON_COMMAND(ID_VIEW_TGWORKSPACE, OnViewTgworkspace)
	ON_UPDATE_COMMAND_UI(ID_VIEW_TGWORKSPACE, OnUpdateViewTgworkspace)
	ON_COMMAND(IDM_TG_SAVEAS, OnTgSaveas)
	ON_COMMAND(IDM_TG_CACL, OnTgCacl)
	ON_UPDATE_COMMAND_UI(IDM_TG_SAVE, OnUpdateTgSave)
	ON_WM_NCRBUTTONDOWN()
	ON_UPDATE_COMMAND_UI(ID_SPD_SAVE_USER, OnUpdateSpdSaveUser)
	ON_UPDATE_COMMAND_UI(ID_MENUITEM_WORD, OnUpdateMenuitemWord)
	ON_WM_CLOSE()
	ON_UPDATE_COMMAND_UI(IDM_TG_PROJECT01, OnUpdateTgProject01)
	ON_UPDATE_COMMAND_UI(IDM_TG_PROJECT02, OnUpdateTgProject02)
	//}}AFX_MSG_MAP
	ON_UPDATE_COMMAND_UI(ID_INDICATOR_APPTITLE, OnUpdateAppTitle)
	ON_REGISTERED_MESSAGE(BCGM_TOOLBARMENU, OnToolbarContextMenu)
END_MESSAGE_MAP()

static UINT indicators[] =
{
	ID_SEPARATOR,           // status line indicator
	ID_INDICATOR_APPTITLE,
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
};

/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here
	bTopMost = false;
	m_TGProjectType = 2; // 套管工程类型   1为生产套管 2为油管
}

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	if(!CCVenusApp::m_bIsShowSplash)
		CSplashWnd::ShowSplashScreen(this);

	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD  | CBRS_TOP
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
	{
		TRACE0("Failed to create toolbar\n");
		return -1;      // fail to create
	}

	if (!m_wndSpdToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | CBRS_TOP
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndSpdToolBar.LoadToolBar(IDR_TOOLBAR_SPD))
	{
		TRACE0("Failed to create spd toolbar\n");
		return -1;      // fail to create
	}

	if (!m_wndShwrjToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | CBRS_TOP
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndShwrjToolBar.LoadToolBar(IDR_TOOLBAR_SHWRJ))
	{
		TRACE0("Failed to create shwrj toolbar\n");
		return -1;      // fail to create
	}

	if (!m_wndTGToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD  | CBRS_TOP
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndTGToolBar.LoadToolBar(IDR_TOOLBAR_TAOGUAN))
	{
		TRACE0("Failed to create taoguan 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: Delete these three lines if you don't want the toolbar to
	//  be dockable
	m_wndToolBar.EnableDocking(CBRS_ALIGN_TOP);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndToolBar);

	if (!m_wndWorkSpace.Create (_T("向导"), this, CSize (230, 200),
		TRUE /* Has gripper */, ID_VIEW_WORKSPACE,
		WS_CHILD | CBRS_LEFT))
	{
		TRACE0("Failed to create workspace bar\n");
		return -1;      // fail to create
	}
	m_wndWorkSpace.EnableDocking(CBRS_ALIGN_LEFT);
	DockControlBar(&m_wndWorkSpace);

	if (!m_wndSpdWorkSpace.Create (_T("向导"), this, CSize (220, 200),
		TRUE /* Has gripper */, ID_VIEW_SPD_WORKSPACE,
		WS_CHILD | CBRS_LEFT))
	{
		TRACE0("Failed to create spd workspace bar\n");
		return -1;      // fail to create
	}
	m_wndSpdWorkSpace.EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndSpdWorkSpace);

	if (!m_wndShwrjWorkSpace.Create (_T("向导"), this, CSize (250, 200),
		TRUE /* Has gripper */, ID_VIEW_SHWRJ_WORKSPACE,
		WS_CHILD | CBRS_LEFT))
	{
		TRACE0("Failed to create spd workspace bar\n");
		return -1;      // fail to create
	}

	if (!m_wndTGWorkSpace.Create (_T("向导"), this, CSize (180, 200),
		TRUE /* Has gripper */, ID_VIEW_TG_WORKSPACE,
		WS_CHILD | CBRS_LEFT))
	{
		TRACE0("Failed to create TG workspace bar\n");
		return -1;      // fail to create
	}
	m_wndTGWorkSpace.EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndTGWorkSpace);

	m_wndShwrjWorkSpace.EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndShwrjWorkSpace);

	m_wndSpdToolBar.EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndSpdToolBar);

	m_wndShwrjToolBar.EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndShwrjToolBar);

	m_wndTGToolBar.EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndTGToolBar);
	return 0;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CMDIFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
	cs.style &= ~FWS_ADDTOTITLE;
	cs.x = cs.y = 0;
	cs.cx = 800; cs.cy = 600;

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// 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::OnWorkspace() 
{
	// TODO: Add your command handler code here
	ShowControlBar (&m_wndWorkSpace,
					!(m_wndWorkSpace.GetStyle () & WS_VISIBLE),
					FALSE);
	RecalcLayout ();
//	m_wndWorkSpace.ShowWindow((m_wndWorkSpace.GetStyle() & WS_VISIBLE) == 0);
/*	if(m_wndWorkSpace.IsWindowVisible())
		ShowControlBar(&m_wndWorkSpace, FALSE, FALSE);
	else
		ShowControlBar(&m_wndWorkSpace, true, FALSE);
*/
}

void CMainFrame::OnUpdateWorkspace(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->SetCheck (m_wndWorkSpace.GetStyle () & WS_VISIBLE);
}


void CMainFrame::RecalcLayout(BOOL bNotify) 
{
	// TODO: Add your specialized code here and/or call the base class
	CMDIFrameWnd::RecalcLayout(bNotify);
	if(((CCVenusApp*)AfxGetApp())->m_iAppType == 1)
		SetPosition();


}
extern CCVenusApp theApp;

void CMainFrame::SetPosition()
{
	if(theApp.m_pMainDlg == NULL || theApp.m_pGraphDlg == NULL)
		return;
	CRect rc;
	int		iLeft, iTop, iWidth, iHeight;
	GetClientRect(&rc);
	iLeft = rc.left + 1;
	iTop = rc.top + 2;
	iWidth = rc.Width() - 3;
	iHeight = rc.Height() - 2;
	if(m_wndStatusBar.GetStyle () & WS_VISIBLE)
	{
		m_wndStatusBar.GetClientRect(&rc);
		iHeight -= rc.Height() + 2 ;
	}
	if((m_wndToolBar.GetStyle () & WS_VISIBLE) && !m_wndToolBar.IsFloating())
	{
		m_wndToolBar.GetClientRect(&rc);
		iTop += rc.Height() + 1;
		iHeight -= rc.Height() + 1;
	}
	if((m_wndWorkSpace.GetStyle () & WS_VISIBLE) && !m_wndWorkSpace.IsFloating())
	{
		m_wndWorkSpace.GetClientRect(&rc);
		iLeft += rc.Width() + 14;
		iWidth -= rc.Width() + 15;
	}
	

	theApp.m_pMainDlg->SetWindowPos(NULL,iLeft, iTop,iWidth, iHeight, NULL);
	theApp.m_pResultDlg->SetWindowPos(NULL,iLeft, iTop,iWidth, iHeight, NULL);
	theApp.m_pGraphDlg->SetWindowPos(NULL,iLeft, iTop,iWidth, iHeight, NULL);

}

void CMainFrame::OnAlwaysTopmost() 
{
	// TODO: Add your command handler code here
	SetWindowPos(bTopMost?&wndNoTopMost:&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE); 
	bTopMost = !bTopMost;
}

void CMainFrame::OnUpdateAlwaysTopmost(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->SetCheck (bTopMost);
	
}

void CMainFrame::ChangeMainFrame(int iAppType)
{
	LockMyWindowUpdate( );
	CString		strAppTitle;
	strAppTitle.LoadString(IDR_MAINFRAME);
	SetWindowText(strAppTitle);
	while(GetActiveFrame() != this)
		GetActiveFrame()->SendMessage(WM_CLOSE,NULL,NULL);

	switch(iAppType)
	{
	case 1: 
		m_NewMenu.LoadMenu(IDR_MAINFRAME_VENUS);
		ShowControlBar(&m_wndToolBar,true,false);
		ShowControlBar(&m_wndWorkSpace,true,false);
		ShowControlBar(&m_wndSpdWorkSpace,false,false);
		ShowControlBar(&m_wndSpdToolBar,false,false);
		ShowControlBar(&m_wndShwrjToolBar,false,false);
		ShowControlBar(&m_wndShwrjWorkSpace,false,false);
		ShowControlBar(&m_wndTGToolBar,false,false);
		ShowControlBar(&m_wndTGWorkSpace,false,false);
		m_wndStatusBar.SetPaneText(1,_T("采气工艺方案设计及分析"));
		break;
	case 2:
		m_NewMenu.LoadMenu(IDR_INITIALIZE_SPD);
		ShowControlBar(&m_wndToolBar,false,false);
		ShowControlBar(&m_wndWorkSpace,false,false);
		ShowControlBar(&m_wndSpdWorkSpace,true,false);
		ShowControlBar(&m_wndSpdToolBar,true,false);
		ShowControlBar(&m_wndShwrjToolBar,false,false);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -