QuickImage.cpp
上传用户:gzboli
上传日期:2013-04-10
资源大小:471k
文件大小:4k
源码类别:

图片显示

开发平台:

Visual C++

  1. // QuickImage.cpp : Defines the class behaviors for the application.
  2. //
  3. #include "stdafx.h"
  4. #include "QuickImage.h"
  5. #include "MainFrm.h"
  6. #include "DirFrm.h"
  7. //#include "QuickImageDoc.h"
  8. //#include "QuickImageView.h"
  9. #include "DIBDoc.h"
  10. #include "FileView.h"
  11. #include "DirView.h"
  12. #include "QuickView.h"
  13. #include "DIBView.h"
  14. #include "ImgFrm.h"
  15. #include "AboutDlg.h"
  16. #ifdef _DEBUG
  17. #define new DEBUG_NEW
  18. #undef THIS_FILE
  19. static char THIS_FILE[] = __FILE__;
  20. #endif
  21. /////////////////////////////////////////////////////////////////////////////
  22. // CQuickImageApp
  23. BEGIN_MESSAGE_MAP(CQuickImageApp, CWinApp)
  24. //{{AFX_MSG_MAP(CQuickImageApp)
  25. ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
  26. // NOTE - the ClassWizard will add and remove mapping macros here.
  27. //    DO NOT EDIT what you see in these blocks of generated code!
  28. //}}AFX_MSG_MAP
  29. // Standard file based document commands
  30. ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
  31. ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
  32. // Standard print setup command
  33. ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
  34. END_MESSAGE_MAP()
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CQuickImageApp construction
  37. CQuickImageApp::CQuickImageApp()
  38. {
  39. // TODO: add construction code here,
  40. // Place all significant initialization in InitInstance
  41. m_pImageTemplate = NULL;
  42. }
  43. /////////////////////////////////////////////////////////////////////////////
  44. // The one and only CQuickImageApp object
  45. CQuickImageApp theApp;
  46. /////////////////////////////////////////////////////////////////////////////
  47. // CQuickImageApp initialization
  48. BOOL CQuickImageApp::InitInstance()
  49. {
  50. AfxEnableControlContainer();
  51. // Standard initialization
  52. // If you are not using these features and wish to reduce the size
  53. //  of your final executable, you should remove from the following
  54. //  the specific initialization routines you do not need.
  55. #ifdef _AFXDLL
  56. Enable3dControls(); // Call this when using MFC in a shared DLL
  57. #else
  58. Enable3dControlsStatic(); // Call this when linking to MFC statically
  59. #endif
  60. // Change the registry key under which our settings are stored.
  61. // TODO: You should modify this string to be something appropriate
  62. // such as the name of your company or organization.
  63. // SetRegistryKey(_T("Local AppWizard-Generated Applications"));
  64. // LoadStdProfileSettings();  // Load standard INI file options (including MRU)
  65. // Register the application's document templates.  Document templates
  66. //  serve as the connection between documents, frame windows and views.
  67. CMultiDocTemplate* pDocTemplate;
  68. pDocTemplate = new CMultiDocTemplate(
  69. IDR_QUICKITYPE,
  70. RUNTIME_CLASS(CDIBDoc),
  71. RUNTIME_CLASS(CDirFrame), // custom MDI child frame
  72. RUNTIME_CLASS(CQuickView));
  73. AddDocTemplate(pDocTemplate);
  74. m_pImageTemplate = new CMultiDocTemplate(
  75. IDR_QUICKITYPE,
  76. RUNTIME_CLASS(CDIBDoc),
  77. RUNTIME_CLASS(CImgFrame), // custom MDI child frame
  78. RUNTIME_CLASS(CDIBView));
  79. // AddDocTemplate(m_pImageTemplate);
  80. // create main MDI Frame window
  81. CMainFrame* pMainFrame = new CMainFrame;
  82. if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
  83. return FALSE;
  84. m_pMainWnd = pMainFrame;
  85. // Parse command line for standard shell commands, DDE, file open
  86. CCommandLineInfo cmdInfo;
  87. ParseCommandLine(cmdInfo);
  88. // cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
  89. // Dispatch commands specified on the command line
  90. if (!ProcessShellCommand(cmdInfo))
  91. return FALSE;
  92. // The main window has been initialized, so show and update it.
  93. pMainFrame->ShowWindow(m_nCmdShow);
  94. pMainFrame->UpdateWindow();
  95. return TRUE;
  96. }
  97. /////////////////////////////////////////////////////////////////////////////
  98. // CAboutDlg dialog used for App About
  99. // App command to run the dialog
  100. void CQuickImageApp::OnAppAbout()
  101. {
  102. CAboutDlg aboutDlg;
  103. aboutDlg.DoModal();
  104. }
  105. /////////////////////////////////////////////////////////////////////////////
  106. // CQuickImageApp message handlers
  107. int CQuickImageApp::ExitInstance()
  108. {
  109. if(NULL != m_pImageTemplate)
  110. {
  111. m_pImageTemplate->CloseAllDocuments(TRUE);
  112. delete m_pImageTemplate;
  113. m_pImageTemplate = NULL;
  114. }
  115. return CWinApp::ExitInstance();
  116. }
  117. CDocument* CQuickImageApp::OpenDocumentFile(LPCTSTR lpszFileName) 
  118. {
  119. // TODO: Add your specialized code here and/or call the base class
  120. return m_pImageTemplate->OpenDocumentFile(lpszFileName);
  121. return CWinApp::OpenDocumentFile(lpszFileName);
  122. }