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

界面编程

开发平台:

Visual C++

  1. // ChildFrm.cpp : implementation of the CChildFrame class
  2. //
  3. #include "stdafx.h"
  4. #include "ResizableChildSheet.h"
  5. #include "ChildFrm.h"
  6. #include "MainFrm.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CChildFrame
  14. IMPLEMENT_DYNCREATE( CChildFrame, CMDIChildWnd )
  15. BEGIN_MESSAGE_MAP( CChildFrame, CMDIChildWnd )
  16. //{{AFX_MSG_MAP(CChildFrame)
  17. ON_COMMAND(ID_FILE_CLOSE, OnFileClose)
  18. ON_WM_SETFOCUS()
  19. ON_WM_CREATE()
  20. //}}AFX_MSG_MAP
  21. END_MESSAGE_MAP()
  22. /////////////////////////////////////////////////////////////////////////////
  23. // CChildFrame construction/destruction
  24. CChildFrame::CChildFrame()
  25. {
  26. // TODO: add member initialization code here
  27. }
  28. CChildFrame::~CChildFrame()
  29. {
  30. }
  31. BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
  32. {
  33. if( ! CExtNCW < CMDIChildWnd > :: PreCreateWindow(cs) )
  34. return FALSE;
  35. cs.dwExStyle &= ~WS_EX_CLIENTEDGE;
  36. cs.lpszClass = AfxRegisterWndClass(0);
  37. return TRUE;
  38. }
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CChildFrame diagnostics
  41. #ifdef _DEBUG
  42. void CChildFrame::AssertValid() const
  43. {
  44. CExtNCW < CMDIChildWnd > :: AssertValid();
  45. }
  46. void CChildFrame::Dump( CDumpContext & dc ) const
  47. {
  48. CExtNCW < CMDIChildWnd > :: Dump(dc);
  49. }
  50. #endif //_DEBUG
  51. /////////////////////////////////////////////////////////////////////////////
  52. // CChildFrame message handlers
  53. void CChildFrame::OnFileClose() 
  54. {
  55. // To close the frame, just send a WM_CLOSE, which is the equivalent
  56. // choosing close from the system menu.
  57. SendMessage(WM_CLOSE);
  58. }
  59. int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  60. {
  61. if( CExtNCW < CMDIChildWnd > :: OnCreate( lpCreateStruct ) == -1 )
  62. return -1;
  63. HINSTANCE hInstResource =
  64. AfxFindResourceHandle(
  65. MAKEINTRESOURCE( IDR_CHILDFRAME ),
  66. RT_GROUP_ICON
  67. );
  68. ASSERT( hInstResource != NULL );
  69. HICON hIcon = (HICON)
  70. ::LoadImage(
  71. hInstResource,
  72. MAKEINTRESOURCE( IDR_CHILDFRAME ),
  73. IMAGE_ICON,
  74. 16,
  75. 16,
  76. 0
  77. );
  78. ASSERT( hIcon != NULL );
  79. SetIcon( hIcon, FALSE );
  80. CWinApp * pApp = ::AfxGetApp();
  81. ASSERT( pApp != NULL );
  82. hIcon = pApp->LoadIcon( IDR_CHILDFRAME );
  83. ASSERT( hIcon != NULL );
  84. SetIcon( hIcon, TRUE );
  85. m_wndView.AddPage( &m_wndPage1 );
  86. m_wndView.AddPage( &m_wndPage2 );
  87. m_wndView.AddPage( &m_wndPage3 );
  88. if( !m_wndView.Create(this) )
  89. {
  90. TRACE0("Failed to create view windown");
  91. return -1;
  92. }
  93. m_wndView.SetDlgCtrlID( AFX_IDW_PANE_FIRST );
  94. RecalcLayout();
  95. m_wndView.SetActivePage( 2 );
  96. return 0;
  97. }
  98. void CChildFrame::OnSetFocus(CWnd* pOldWnd) 
  99. {
  100. CExtNCW < CMDIChildWnd > :: OnSetFocus( pOldWnd );
  101. m_wndView.SetFocus();
  102. }
  103. BOOL CChildFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) 
  104. {
  105. // let the view have first crack at the command
  106. if( m_wndView.OnCmdMsg( nID, nCode, pExtra, pHandlerInfo ) )
  107. return TRUE;
  108. // otherwise, do default handling
  109. return CExtNCW < CMDIChildWnd > :: OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
  110. }
  111. BOOL CChildFrame::PreTranslateMessage(MSG* pMsg) 
  112. {
  113. CMainFrame * pMainFrame =
  114. STATIC_DOWNCAST( CMainFrame, AfxGetMainWnd() );
  115. if( pMainFrame->m_wndMenuBar.TranslateMainFrameMessage(pMsg) )
  116. return TRUE;
  117. return CExtNCW < CMDIChildWnd > :: PreTranslateMessage(pMsg);
  118. }