GraphSoft.cpp
资源名称:44757463.rar [点击查看]
上传用户:lj3531212
上传日期:2007-06-18
资源大小:346k
文件大小:7k
源码类别:
绘图程序
开发平台:
Visual C++
- // GraphSoft.cpp : Defines the class behaviors for the application.
- //
- #include "stdafx.h"
- #include "GraphSoft.h"
- #include <atlbase.h>
- #include "MainFrm.h"
- #include "GraphSoftDoc.h"
- #include "GraphSoftView.h"
- #include "HyperLink.h"
- #include "SplashWindow.h"
- #include "UND_Create.h"
- #include "UND_Move.h"
- #include "UND_Rotate.h"
- #include "UND_Magnify.h"
- #include "UND_ShowPoints.h"
- #include "UND_TopToBtm.h"
- #include "UND_LeftToRight.h"
- #include "UND_Delete.h"
- #include "UND_Copy.h"
- #include "UND_Edit.h"
- #include "UND_Property.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CGraphSoftApp
- BEGIN_MESSAGE_MAP(CGraphSoftApp, CWinApp)
- //{{AFX_MSG_MAP(CGraphSoftApp)
- ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
- ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
- //}}AFX_MSG_MAP
- // Standard file based document commands
- ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
- ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
- // Standard print setup command
- ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CGraphSoftApp construction
- CGraphSoftApp::CGraphSoftApp()
- {
- // TODO: add construction code here,
- // Place all significant initialization in InitInstance
- }
- /////////////////////////////////////////////////////////////////////////////
- // The one and only CGraphSoftApp object
- CGraphSoftApp theApp;
- /////////////////////////////////////////////////////////////////////////////
- // CGraphSoftApp initialization
- BOOL CGraphSoftApp::InitInstance()
- {
- 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.
- #ifdef _AFXDLL
- Enable3dControls(); // Call this when using MFC in a shared DLL
- #else
- Enable3dControlsStatic(); // Call this when linking to MFC statically
- #endif
- // 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("Local AppWizard-Generated Applications"));
- LoadStdProfileSettings(); // Load standard INI file options (including MRU)
- //the control of test deition
- CRegKey hKey;
- if(hKey.Create(HKEY_LOCAL_MACHINE,"SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION") == ERROR_SUCCESS)
- {
- BOOL bWrite = TRUE;
- TCHAR scTemp[_MAX_PATH];
- DWORD dwCount = sizeof(scTemp);
- if(hKey.QueryValue(scTemp,"SystemVctmp",&dwCount) == ERROR_SUCCESS)
- {
- if(atoi(scTemp)>25){
- // MessageBox(NULL,"GraphSoft2 试用班版到期! n购买序列号联系Xiagl@nanjing_fnst.com","提示",MB_OK);
- // abort();
- }else{
- int nTime = atoi(scTemp);
- nTime = nTime + 1;
- CString str;
- str.Format("%d",nTime);
- hKey.SetValue(str,"SystemVctmp");
- bWrite = FALSE;
- }
- }
- if(bWrite)
- hKey.SetValue("1","SystemVctmp");
- hKey.Close();
- }
- // Register the application's document templates. Document templates
- // serve as the connection between documents, frame windows and views.
- CSplashWindow *m_pSplashWindow = new CSplashWindow;
- m_pSplashWindow->CreateSplash();
- m_pSplashWindow->CenterWindow();
- m_pSplashWindow->ShowWindow(SW_SHOW);
- m_pSplashWindow->UpdateWindow();
- Sleep(2000); //Delay 3 Seconds
- m_pSplashWindow->DestroyWindow(); //Destroy Window
- delete m_pSplashWindow;
- CSingleDocTemplate* pDocTemplate;
- pDocTemplate = new CSingleDocTemplate(
- IDR_MAINFRAME,
- RUNTIME_CLASS(CGraphSoftDoc),
- RUNTIME_CLASS(CMainFrame), // main SDI frame window
- RUNTIME_CLASS(CGraphSoftView));
- AddDocTemplate(pDocTemplate);
- // Parse command line for standard shell commands, DDE, file open
- CCommandLineInfo cmdInfo;
- ParseCommandLine(cmdInfo);
- // Dispatch commands specified on the command line
- if (!ProcessShellCommand(cmdInfo))
- return FALSE;
- // The one and only window has been initialized, so show and update it.
- m_pMainWnd->ShowWindow(SW_SHOW);
- 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 };
- CHyperLink m_ctrlMail;
- //}}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)
- virtual BOOL OnInitDialog();
- //}}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)
- DDX_Control(pDX, IDC_MAIL, m_ctrlMail);
- //}}AFX_DATA_MAP
- }
- BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
- //{{AFX_MSG_MAP(CAboutDlg)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- BOOL CAboutDlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
- // TODO: Add extra initialization here
- m_ctrlMail.SetURL("mailto:325003xgl@sina.com");
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
- // App command to run the dialog
- void CGraphSoftApp::OnAppAbout()
- {
- CAboutDlg aboutDlg;
- aboutDlg.DoModal();
- }
- /////////////////////////////////////////////////////////////////////////////
- // CGraphSoftApp message handlers
- void CGraphSoftApp::OnFileOpen()
- {
- // TODO: Add your command handler code here
- CWinApp::OnFileOpen();
- }
- CDocument* CGraphSoftApp::OpenDocumentFile(LPCTSTR lpszFileName)
- {
- // TODO: Add your specialized code here and/or call the base class
- /* CGraphSoftView* pView=(CGraphSoftView*)((CMainFrame*)AfxGetApp()->GetMainWnd())->GetActiveView();
- CGraphSoftDoc* pDoc=pView->GetDocument();
- CString strTitle,strDetail;
- strTitle.LoadString(IDS_FILE_SAVE_TITLE);
- strDetail.LoadString(IDS_FILE_SAVE_STRING);
- if(pDoc->m_pCore->IsAbleToUndo()||pDoc->m_pCore->IsAbleToRedo())
- {
- int nRtn=GetMainWnd()->MessageBox(strDetail,strTitle,MB_YESNOCANCEL|MB_APPLMODAL);
- if(nRtn==IDYES){
- SendMessage(AfxGetApp()->GetMainWnd()->GetSafeHwnd(),WM_COMMAND,WPARAM(ID_FILE_SAVE),NULL);
- }else if(nRtn==IDCANCEL){
- return CWinApp::OpenDocumentFile(lpszFileName);;
- }
- }
- pDoc->m_nCurrentShapeType=_shape_none;
- if(pView!=NULL)
- {
- pView->m_graph_op=_graph_noneOp;
- pView->m_bDrawFlag = FALSE;
- }
- if(m_strFileName.Compare(lpszFileName)!=0) {
- delete pDoc->m_pCore;//删除撤消/恢复对象指针,以及删除图形对象指针
- pDoc->m_shapeList.RemoveAll();
- pDoc->m_pCore=new CCore(pDoc,pView);
- }
- */
- CDocument* pDocRlt=CWinApp::OpenDocumentFile(lpszFileName);//如果同名,则不再重新序列化
- /* if(m_strFileName.Compare(lpszFileName)!=0) {
- CUND_Base* pUNDBase;
- POSITION pos=pDoc->m_shapeList.GetHeadPosition();
- while (pos!=NULL) {
- CShape* pShape=pDoc->m_shapeList.GetNext(pos);
- pUNDBase = new CUND_Create(pShape);
- pDoc->m_pCore->AddUndoItem(pUNDBase);
- }
- ((CMainFrame*)this->GetMainWnd())->GetActiveView()->Invalidate(TRUE);
- }
- m_strFileName = lpszFileName;
- */
- return pDocRlt;
- }