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

界面编程

开发平台:

Visual C++

  1. // splitfrm.cpp : implementation file
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1998 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12. #include "stdafx.h"
  13. #include "drawcli.h"
  14. #include "splitfrm.h"
  15. #include "mainfrm.h"
  16. #ifdef _DEBUG
  17. #undef THIS_FILE
  18. static char BASED_CODE THIS_FILE[] = __FILE__;
  19. #endif
  20. /////////////////////////////////////////////////////////////////////////////
  21. // CSplitFrame
  22. IMPLEMENT_DYNCREATE( CSplitFrame, CMDIChildWnd )
  23. CSplitFrame::CSplitFrame()
  24. {
  25. m_hChildFrameIcon = NULL;
  26. HINSTANCE hInstResource =
  27. AfxFindResourceHandle(
  28. MAKEINTRESOURCE(IDR_DRAWCLTYPE),
  29. RT_GROUP_ICON
  30. );
  31. ASSERT( hInstResource != NULL );
  32. if( hInstResource != NULL )
  33. {
  34. m_hChildFrameIcon =
  35. (HICON)::LoadImage(
  36. hInstResource,
  37. MAKEINTRESOURCE(IDR_DRAWCLTYPE),
  38. IMAGE_ICON,
  39. 16,
  40. 16,
  41. 0
  42. );
  43. ASSERT( m_hChildFrameIcon != NULL );
  44. }
  45. }
  46. CSplitFrame::~CSplitFrame()
  47. {
  48. if( m_hChildFrameIcon != NULL )
  49. ::DestroyIcon( m_hChildFrameIcon );
  50. }
  51. BOOL CSplitFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
  52. {
  53. return m_wndSplitter.Create(this,
  54. 2, 2,       // TODO: adjust the number of rows, columns
  55. CSize(10, 10),  // TODO: adjust the minimum pane size
  56. pContext);
  57. }
  58. BEGIN_MESSAGE_MAP( CSplitFrame, CMDIChildWnd )
  59. //{{AFX_MSG_MAP(CSplitFrame)
  60. ON_WM_CREATE()
  61. //}}AFX_MSG_MAP
  62. END_MESSAGE_MAP()
  63. /////////////////////////////////////////////////////////////////////////////
  64. // CSplitFrame message handlers
  65. BOOL CSplitFrame::PreTranslateMessage(MSG* pMsg) 
  66. {
  67. CMainFrame * pMainFrame =
  68. DYNAMIC_DOWNCAST(
  69. CMainFrame,
  70. GetParentFrame()
  71. );
  72. ASSERT_VALID( pMainFrame );
  73. #if (!defined __SAMPLE_APP_USES_STD_MENU_LINE)
  74. if( pMainFrame->m_wndMenuBar.TranslateMainFrameMessage( pMsg ) )
  75. return TRUE;
  76. #endif // (!defined __SAMPLE_APP_USES_STD_MENU_LINE)
  77. return CExtNCW < CMDIChildWnd > :: PreTranslateMessage( pMsg );
  78. }
  79. void CSplitFrame::ActivateFrame(int nCmdShow) 
  80. {
  81. //nCmdShow = SW_SHOWMAXIMIZED;
  82. CExtNCW < CMDIChildWnd > :: ActivateFrame( nCmdShow );
  83. }
  84. int CSplitFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  85. {
  86. if( CExtNCW < CMDIChildWnd > :: OnCreate( lpCreateStruct ) == -1 )
  87. return -1;
  88. ASSERT( m_hChildFrameIcon != NULL );
  89. SetIcon( m_hChildFrameIcon, FALSE );
  90. SetIcon( m_hChildFrameIcon, TRUE );
  91. return 0;
  92. }
  93. BOOL CSplitFrame::PreCreateWindow(CREATESTRUCT& cs)
  94. {
  95. if( ! CExtNCW < CMDIChildWnd > :: PreCreateWindow( cs ) )
  96. return false;
  97. cs.dwExStyle &= ~(WS_EX_DLGMODALFRAME|WS_EX_STATICEDGE|WS_EX_CLIENTEDGE);
  98. return TRUE;
  99. }