📄 cvenus.cpp
字号:
// CVenus.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "CVenus.h"
#include "MainFrm.h"
#include "ChildFrm.h"
#include "CVenusDoc.h"
#include "CVenusView.h"
#include "direct.h"
#include "zpjjdfx.h"
#include "qjjjdfx.h"
#include "qjyhsj.h"
#include "jcyhsj.h"
#include "dqbyhsj.h"
#include "slb.h"
#include "qjlxpyljll.h"
#include "dxlcglyltd.h"
#include "qjyltd.h"
#include "gycx.h"
#include "scjjdfx.h"
#include "Nxqjjdfx.h"
#include "Cal_Zsqj.h"
#include "zpjdtfx.h"
#include "qjdtfx.h"
#include "slbdtfx.h"
#include "scqjdtfx.h"
#include "Computer.h"
#include "GraphCtrl.h"
#include "Splash.h"
#include "SelectAppDlg.h"
#include "NewAboutDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCVenusApp
BEGIN_MESSAGE_MAP(CCVenusApp, CWinApp)
//{{AFX_MSG_MAP(CCVenusApp)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
ON_COMMAND(IDM_ANALYSE_CALC_1, OnAnalyseCalc1)
ON_COMMAND(IDM_DIS_CUR_RST, OnDisCurRst)
ON_COMMAND(IDM_DISP_CALC_RST, OnDispCalcRst)
ON_COMMAND(IDM_DIS_CUR_GRAPH, OnDisCurGraph)
ON_COMMAND(IDM_DISP_GRAPH_1, OnDispGraph1)
ON_COMMAND(IDM_DISP_GRAPH_2, OnDispGraph2)
ON_COMMAND(IDM_BITMAP, OnBitmap)
ON_COMMAND(IDM_DISP_GRAPH_3, OnDispGraph3)
ON_COMMAND(IDM_DISP_GRAPH_4, OnDispGraph4)
ON_COMMAND(IDM_DISP_GRAPH_5, OnDispGraph5)
ON_COMMAND(IDM_DISP_GRAPH_6, OnDispGraph6)
ON_COMMAND(IDM_HELP, OnHelp)
ON_COMMAND(IDM_HELP1, OnHelp1)
ON_COMMAND(ID_BASE_NEW, OnBaseNew)
ON_COMMAND(ID_BASE_OPEN, OnBaseOpen)
ON_COMMAND(ID_BASE_SAVE, OnBaseSave)
ON_UPDATE_COMMAND_UI(ID_BASE_SAVE, OnUpdateBaseSave)
ON_COMMAND(ID_BASE_SAVEAS, OnBaseSaveas)
ON_COMMAND(ID_BASE_PRINT, OnBasePrint)
ON_COMMAND(ID_BASE_PRINTPREVIEW, OnBasePrintpreview)
ON_COMMAND(ID_BASE_DISPLAY, OnBaseDisplay)
ON_COMMAND(IDM_DISPLAY_1, OnDisplay1)
ON_COMMAND(ID_RESULT_PRINTPREVIEW, OnResultPrintpreview)
ON_COMMAND(IDM_DISPLAY_4, OnDisplay4)
ON_COMMAND(ID_GRAPH_SAVE, OnGraphSave)
ON_COMMAND(ID_RESULT_DISLPLAY, OnResultDislplay)
ON_UPDATE_COMMAND_UI(ID_RESULT_DISLPLAY, OnUpdateResultDislplay)
ON_COMMAND(ID_GRAPH_DISPLAY, OnGraphDisplay)
ON_UPDATE_COMMAND_UI(ID_GRAPH_DISPLAY, OnUpdateGraphDisplay)
ON_COMMAND(ID_SPD_VENUS, OnSpdVenus)
ON_COMMAND(ID_SPD_SHWRJ, OnSpdShwrj)
ON_COMMAND(ID_SHWRJ_VENUS, OnShwrjVenus)
ON_COMMAND(ID_SHWRJ_SPD, OnShwrjSpd)
ON_COMMAND(ID_VEMUS_SPD, OnVemusSpd)
ON_COMMAND(ID_VENUS_SHWRJ, OnVenusShwrj)
ON_COMMAND(IDM_VENUS_SYN, OnVenusSyn)
ON_COMMAND(ID_SPD_TG, OnSpdTg)
ON_COMMAND(ID_SHWRJ_TG, OnShwrjTg)
ON_COMMAND(ID_VENUS_TG, OnVenusTg)
ON_COMMAND(ID_TG_VENUS, OnTgVenus)
ON_COMMAND(ID_TG_SPD, OnTgSpd)
ON_COMMAND(ID_TG_SHWRJ, OnTgShwrj)
ON_COMMAND(ID_VENUS_ALLPREVIEW, OnVenusAllpreview)
ON_UPDATE_COMMAND_UI(ID_VENUS_ALLPREVIEW, OnUpdateVenusAllpreview)
ON_COMMAND(ID_VENUS_ALLPRINT, OnVenusAllprint)
ON_UPDATE_COMMAND_UI(ID_VENUS_ALLPRINT, OnUpdateVenusAllprint)
ON_UPDATE_COMMAND_UI(IDM_VENUS_SYN, OnUpdateVenusSyn)
ON_COMMAND(IDM_HELP_SHW, OnHelpShw)
ON_UPDATE_COMMAND_UI(IDM_DISP_GRAPH_1, OnUpdateGraph)
ON_UPDATE_COMMAND_UI(IDM_DIS_CUR_GRAPH, OnUpdateGraph)
ON_UPDATE_COMMAND_UI(ID_GRAPH_SAVE, OnUpdateGraph)
ON_UPDATE_COMMAND_UI(IDM_DISP_GRAPH_2, OnUpdateGraph)
ON_UPDATE_COMMAND_UI(IDM_BITMAP, OnUpdateGraph)
ON_UPDATE_COMMAND_UI(IDM_DISP_GRAPH_3, OnUpdateGraph)
ON_UPDATE_COMMAND_UI(IDM_DISP_GRAPH_4, OnUpdateGraph)
ON_UPDATE_COMMAND_UI(IDM_DISP_GRAPH_5, OnUpdateGraph)
ON_UPDATE_COMMAND_UI(IDM_DISP_GRAPH_6, OnUpdateGraph)
//}}AFX_MSG_MAP
// Standard file based document commands
ON_COMMAND_RANGE(IDM_PROJECT_1, IDM_PROJECT_18, OnProject)
ON_UPDATE_COMMAND_UI_RANGE(IDM_PROJECT_1, IDM_PROJECT_18, OnUpdateProject)
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCVenusApp construction
CCVenusApp::CCVenusApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
m_iAppType = 1;
m_pMainDlg = NULL;
m_pResultDlg = NULL;
m_pGraphDlg = NULL;
}
CCVenusApp::~CCVenusApp()
{
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CCVenusApp object
double ptidu[4000],dtidu[4000];
CCVenusApp theApp;
bool CCVenusApp::m_bIsShowSplash = false;
/////////////////////////////////////////////////////////////////////////////
// CCVenusApp initialization
BOOL CCVenusApp::InitInstance()
{
// CG: The following block was added by the Splash Screen component.\ {\ CCommandLineInfo cmdInfo;\ ParseCommandLine(cmdInfo);\\ CSplashWnd::EnableSplashScreen(cmdInfo.m_bShowSplash);\ }
// CG: The following line was added by the Splash Screen component.
AfxEnableControlContainer();
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
// Change the registry key under which our settings are stored.
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization.
SetRegistryKey(_T("GPDesign"));
LoadStdProfileSettings(); // Load standard INI file options (including MRU)
SetRegistryBase (_T("Settings"));
// create main MDI Frame window
/* CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CCVenusDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CCVenusView));
AddDocTemplate(pDocTemplate);
*/
// Parse command line for standard shell commands, DDE, file open
CGPCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// cmdInfo.m_nShellCommand = NULL;
// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
return FALSE;
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
GetLocalPath(&m_strAppPath);
switch(m_iAppType)
{
case 1:
if(!InitVenus())
return false;
break;
case 2:
if(!InitSpd())
return false;
break;
case 3:
if(!InitShwrj())
return false;
break;
case 4:
if(!InitTG())
return false;
break;
default:
return false;
}
// The main window has been initialized, so show and update it.
// m_nCmdShow=SW_SHOWMAXIMIZED;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
// No message handlers
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
// App command to run the dialog
void CCVenusApp::OnAppAbout()
{
CNewAboutDlg aboutDlg;
aboutDlg.DoModal();
}
/////////////////////////////////////////////////////////////////////////////
// CCVenusApp message handlers
/*************************************************************************
*
* GetMyAppPath()
*
* 功 能: 取应用程序路径
*
* 参 数: 无
*
* 返回值: 无
*
*************************************************************************/
CString CCVenusApp::GetMyAppPath()
{
CString strFileName;
int curdrive;
TCHAR strAppPath[MAX_PATH];
int loc = 0;
TCHAR ch;
// if(strFileName == NULL) return;
// strFileName->Empty();
if(m_cBaseFilePath.IsEmpty())
{
curdrive = _getdrive();
if(_getdcwd(curdrive, strAppPath, MAX_PATH)!=NULL)
{
strFileName.Format("%s", strAppPath);
}
else
{
AfxMessageBox(_T("错误"), MB_OK);
}
}
else
{
for(int i = 0; i < m_cBaseFilePath.GetLength(); i++)
{
ch = m_cBaseFilePath.GetAt(i);
if(ch == '\\')
{
loc = i;
}
}
for(i = 0; i < loc; i++)
{
strFileName.Insert(i, m_cBaseFilePath.GetAt(i));
}
}
return strFileName;
}
/*************************************************************************
*
* IsSaveBaseData()
*
* 功 能: 是否需要保存基础数据(如需要则保存)
*
* 参 数: 无
*
* 返回值: true: 不需要或者需要且已保存
* false: 需要但是被用户取消或者出错
*
*************************************************************************/
bool CCVenusApp::IsSaveBaseData()
{
if(m_bModifyData)
{
int iResults = AfxMessageBox(_T("基础数据已修改,是否保存?"),
MB_YESNOCANCEL|MB_ICONQUESTION) ;
if(iResults == IDCANCEL)
return false;
if(iResults == IDYES )
{
if(!SaveBaseData())
return false;
}
else
m_bModifyData = false;
}
return true;
}
/*************************************************************************
*
* IsSaveData()
*
* 功 能: 是否需要保存数据
*
* 参 数: 无
*
* 返回值: 无
*
*************************************************************************/
/*
void CCVenusApp::IsSaveData()
{
HANDLE hSearch;
CString str;
WIN32_FIND_DATA FileData;
m_btSaveType = 0x01;
str = GetMyAppPath();
hSearch = FindFirstFile(str + "\\tempfile.txt", &FileData);
if (hSearch != INVALID_HANDLE_VALUE || m_bModifyData)
{
if( AfxMessageBox("数据未保存,是否存盘?", MB_YESNO) == IDYES )
{
SaveData();
}
else
{
DeleteFile(str + "\\tempfile.txt");
DeleteFile(str + "\\tempfile.gra");
}
m_cBaseFilePath.Empty();
m_bModifyData = FALSE;
}
}
*/
/*************************************************************************
*
* SaveData()
*
* 功 能: 保存数据
*
* 参 数: 无
*
* 返回值: 无
*
*************************************************************************/
/*
void CCVenusApp::SaveData()
{
CStdioFile file, rst_file, gra_file;
int replace;
BOOL bLineEnd = FALSE;
CString str, FileStr, tmpStr, projectStr;
char ch;
str = GetMyAppPath();
BOOL bDot = FALSE;
for(int i = m_cBaseFilePath.GetLength() - 1; i >= 0; i--)
{
ch = m_cBaseFilePath.GetAt(i);
if(ch != '\\')
{
if(ch == '.')
{
bDot = TRUE;
}
else
{
if(bDot)
{
projectStr.Insert(0, ch);
}
}
}
else
{
break;
}
}
// 保存基础数据
if(m_btSaveType == 0x01)
{
if( !SaveBaseData() )
{
return;
}
}
// 保存结果文件
if(m_btSaveType == 0x02)
{
GetExtName(1, &tmpStr);
if( !file.Open(str + "\\tempfile.txt", CFile::modeReadWrite | CFile::typeText) )
{
return;
}
if( !rst_file.Open(str + "\\" + projectStr + tmpStr, CFile::modeWrite | CFile::modeCreate) )
{
return;
}
// 修改结果文件
while(TRUE)
{
try
{
if( file.ReadString(FileStr) )
{
if( (replace = FileStr.Find("$$")) != -1 )
{// 标题
FileStr.Replace("$$", projectStr);
}
rst_file.WriteString(FileStr + '\n');
}
else
{// 到文件尾
break;
}
}
catch (CFileException exception1)
{
Beep(650, 50);
AfxMessageBox("读文件出错!", MB_ICONINFORMATION);
return;
}
}
// 修改结果文件名
file.Close();
rst_file.Close();
}
// 保存图形文件
if(m_btSaveType == 0x03)
{
GetExtName(2, &tmpStr);
if( !file.Open(str + "\\tempfile.gra", CFile::modeReadWrite | CFile::typeText) )
{
Beep(650, 50);
AfxMessageBox("保存图形数据文件失败!");
return;
}
if( !gra_file.Open(str + "\\" + projectStr + "." + tmpStr, CFile::modeWrite | CFile::modeCreate) )
{
return;
}
while(TRUE)
{
try
{
if( file.ReadString(FileStr) )
{
if( (replace = FileStr.Find("$$")) != -1 )
{// 标题
FileStr.Replace("$$", projectStr);
}
gra_file.WriteString(FileStr + '\n');
}
else
{// 到文件尾
break;
}
}
catch (CFileException exception1)
{
Beep(650, 50);
AfxMessageBox("读文件出错!", MB_ICONINFORMATION);
return;
}
}
// 修改结果文件名
file.Close();
gra_file.Close();
}
}
*/
/*************************************************************************
*
* SaveBaseData()
*
* 功 能: 保存基础数据
*
* 参 数: 无
*
* 返回值: true: 保存成功
* false: 被用户取消或者出错
*
*************************************************************************/
BOOL CCVenusApp::SaveBaseData()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -