ChildFrm.cpp
上传用户:cding2008
上传日期:2007-01-03
资源大小:1812k
文件大小:4k
源码类别:

OpenGL

开发平台:

Visual C++

  1. /////////////////////////////////////////////////////////////////////////////
  2. // ChildFrm.cpp : implementation of the CChildFrame class
  3. //
  4. // ModelMagic 3D and 'glOOP' (OpenGL Object Oriented Programming library)
  5. // Copyright (c) Craig Fahrnbach 1997, 1999
  6. //
  7. // OpenGL is a registered trademark of Silicon Graphics
  8. //
  9. //
  10. // This program is provided for educational and personal use only and
  11. // is provided without guarantee or warrantee expressed or implied.
  12. //
  13. // Commercial use is strickly prohibited without written permission
  14. // from ImageWare Development.
  15. //
  16. /////////////////////////////////////////////////////////////////////////////
  17. #include "stdafx.h"
  18. #include "ModelMagic3D.h"
  19. #include "ChildFrm.h"
  20. #ifdef _DEBUG
  21. #define new DEBUG_NEW
  22. #undef THIS_FILE
  23. static char THIS_FILE[] = __FILE__;
  24. #endif
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CChildFrame
  27. IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd)
  28. BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
  29. //{{AFX_MSG_MAP(CChildFrame)
  30. ON_WM_PALETTECHANGED()
  31. ON_WM_QUERYNEWPALETTE()
  32. ON_WM_DESTROY()
  33. //}}AFX_MSG_MAP
  34. END_MESSAGE_MAP()
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CChildFrame construction/destruction
  37. CChildFrame::CChildFrame()
  38. {
  39. m_bWndInitialized = FALSE;
  40. }
  41. CChildFrame::~CChildFrame()
  42. {
  43. }
  44. BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
  45. {
  46. // TODO: Modify the Window class or styles here by modifying
  47. //  the CREATESTRUCT cs
  48. return CMDIChildWnd::PreCreateWindow(cs);
  49. }
  50. /////////////////////////////////////////////////////////////////////////////
  51. // CChildFrame diagnostics
  52. #ifdef _DEBUG
  53. void CChildFrame::AssertValid() const
  54. {
  55. CMDIChildWnd::AssertValid();
  56. }
  57. void CChildFrame::Dump(CDumpContext& dc) const
  58. {
  59. CMDIChildWnd::Dump(dc);
  60. }
  61. #endif //_DEBUG
  62. /////////////////////////////////////////////////////////////////////////////
  63. // CChildFrame message handlers
  64. void CChildFrame::ActivateFrame(int nCmdShow) 
  65. {
  66. // TODO: Add your specialized code here and/or call the base class
  67. if(!m_bWndInitialized) {
  68. m_bWndInitialized = TRUE;
  69. // Get the last setting of the window position from
  70. // the ini file and restore
  71. WINDOWPLACEMENT wp;
  72. GetWindowPlacement(&wp);
  73. if(!ReadWindowPlacement(&wp, "Settings", "ChildWindowPos"))
  74. {
  75. // The ini file is corrupt or does not exist, so position the
  76. // child frame to allow for our floating dialog bars.
  77. wp.rcNormalPosition.top    = 0;
  78. wp.rcNormalPosition.bottom = 100;
  79. wp.rcNormalPosition.left   = 0;
  80. wp.rcNormalPosition.right  = 50;
  81. }
  82. // Now restore (or set) our window position
  83. SetWindowPlacement(&wp);
  84. }
  85. CMDIChildWnd::ActivateFrame(nCmdShow);
  86. }
  87. void CChildFrame::OnDestroy() 
  88. {
  89. CMDIChildWnd::OnDestroy();
  90. // TODO: Add your message handler code here
  91. // Save the state of our CView window
  92. WINDOWPLACEMENT wp;
  93. wp.length = sizeof wp;
  94. if (GetWindowPlacement(&wp))
  95. {
  96. wp.flags = 0;
  97. if (::IsZoomed(m_hWnd))
  98. wp.flags |= WPF_RESTORETOMAXIMIZED;
  99. // and write it to the .INI file
  100. WriteWindowPlacement(&wp, "Settings", "ChildWindowPos");
  101. }
  102. }
  103. void CChildFrame::OnPaletteChanged(CWnd* pFocusWnd) 
  104. {
  105. CMDIChildWnd::OnPaletteChanged(pFocusWnd);
  106. // Route message to CView derived class
  107. CView* pView = GetActiveView();
  108. if (pView) {
  109. // OnPaletteChanged is not public, so send a message.
  110. pView->SendMessage(WM_PALETTECHANGED,
  111.   (WPARAM)(pFocusWnd->GetSafeHwnd()),
  112.   (LPARAM)0);
  113. }
  114. }
  115. BOOL CChildFrame::OnQueryNewPalette() 
  116. {
  117. // Route message to CView derived class
  118. CView* pView = GetActiveView();
  119. if (pView) {
  120. // OnPaletteChanged is not public, so send a message.
  121. pView->SendMessage(WM_QUERYNEWPALETTE,
  122.   (WPARAM)0,
  123.   (LPARAM)0);
  124. }
  125. // return FALSE;
  126. return CMDIChildWnd::OnQueryNewPalette();
  127. }