ResizableChildSheet.cpp
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:4k
源码类别:

界面编程

开发平台:

Visual C++

  1. // ResizableChildSheet.cpp : Defines the class behaviors for the application.
  2. //
  3. #include "stdafx.h"
  4. #include "ResizableChildSheet.h"
  5. #include "MainFrm.h"
  6. #include "ChildFrm.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CDemoApp
  14. BEGIN_MESSAGE_MAP(CDemoApp, CWinApp)
  15. //{{AFX_MSG_MAP(CDemoApp)
  16. ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
  17. ON_COMMAND(ID_FILE_NEW, OnFileNew)
  18. //}}AFX_MSG_MAP
  19. END_MESSAGE_MAP()
  20. /////////////////////////////////////////////////////////////////////////////
  21. // CDemoApp construction
  22. CDemoApp::CDemoApp()
  23. {
  24. // TODO: add construction code here,
  25. // Place all significant initialization in InitInstance
  26. }
  27. /////////////////////////////////////////////////////////////////////////////
  28. // The one and only CDemoApp object
  29. CDemoApp theApp;
  30. /////////////////////////////////////////////////////////////////////////////
  31. // Prof-UIS advanced options
  32. void CDemoApp::SetupUiAdvancedOptions()
  33. {
  34. VERIFY(
  35. g_CmdManager->ProfileSetup(
  36. __PROF_UIS_PROJECT_CMD_PROFILE_NAME
  37. )
  38. );
  39. g_PaintManager.InstallPaintManager(
  40. new CExtPaintManager
  41. );
  42. CExtPopupMenuWnd::g_bMenuExpanding = false;
  43. CExtPopupMenuWnd::g_bMenuHighlightRarely = false;
  44. }
  45. /////////////////////////////////////////////////////////////////////////////
  46. // CDemoApp initialization
  47. BOOL CDemoApp::InitInstance()
  48. {
  49. InitCommonControls();
  50. //
  51. // Prof-UIS advanced options
  52.     //
  53. SetupUiAdvancedOptions();
  54. // Standard initialization
  55. // If you are not using these features and wish to reduce the size
  56. //  of your final executable, you should remove from the following
  57. //  the specific initialization routines you do not need.
  58. // Change the registry key under which our settings are stored.
  59. // TODO: You should modify this string to be something appropriate
  60. // such as the name of your company or organization.
  61. SetRegistryKey( _T("Prof-UIS Application Wizard Generated Applications") );
  62. ASSERT( m_pszRegistryKey != NULL );
  63.     // Change the application profile name (usually product name).
  64. // NOTE: The CWinApp class destructor will free the memory automatically.
  65. if( m_pszProfileName != NULL )
  66. free( (void*)m_pszProfileName );
  67. m_pszProfileName =
  68. _tcsdup( _T("ResizableChildSheet") );
  69. ASSERT( m_pszProfileName != NULL );
  70. // To create the main window, this code creates a new frame window
  71. // object and then sets it as the application's main window object.
  72. CMDIFrameWnd* pFrame = new CMainFrame;
  73. m_pMainWnd = pFrame;
  74. // create main MDI frame window
  75. if( !pFrame->LoadFrame(IDR_MAINFRAME) )
  76. return FALSE;
  77. // try to load shared MDI menus and accelerator table
  78. //TODO: add additional member variables and load calls for
  79. // additional menu types your application may need. 
  80. HINSTANCE hInst = AfxGetResourceHandle();
  81. m_hMDIMenu  = ::LoadMenu(hInst, MAKEINTRESOURCE(IDR_CHILDSTYPE));
  82. m_hMDIAccel = ::LoadAccelerators(hInst, MAKEINTRESOURCE(IDR_CHILDSTYPE));
  83. // The main window has been initialized, so show and update it.
  84. pFrame->ActivateFrame( m_nCmdShow );
  85. return TRUE;
  86. }
  87. /////////////////////////////////////////////////////////////////////////////
  88. // CDemoApp message handlers
  89. int CDemoApp::ExitInstance() 
  90. {
  91. //TODO: handle additional resources you may have added
  92. if (m_hMDIMenu != NULL)
  93. FreeResource(m_hMDIMenu);
  94. if (m_hMDIAccel != NULL)
  95. FreeResource(m_hMDIAccel);
  96. return CWinApp::ExitInstance();
  97. }
  98. void CDemoApp::OnFileNew() 
  99. {
  100. CMainFrame* pFrame = STATIC_DOWNCAST(CMainFrame, m_pMainWnd);
  101. // create a new MDI child window
  102. pFrame->CreateNewChild(
  103. RUNTIME_CLASS(CChildFrame), IDR_CHILDSTYPE, m_hMDIMenu, m_hMDIAccel);
  104. }
  105. // App command to run the dialog
  106. void CDemoApp::OnAppAbout()
  107. {
  108. #ifndef __EXT_MFC_NO_PROF_UIS_ABOUT_DIALOG
  109. VERIFY( ProfUISAbout() );
  110. #endif // #ifndef __EXT_MFC_NO_PROF_UIS_ABOUT_DIALOG
  111. }
  112. /////////////////////////////////////////////////////////////////////////////
  113. // CDemoApp message handlers