www.pudn.com > modelmagic3d.zip > ChildFrm.cpp, change:1999-03-31,size:3948b


///////////////////////////////////////////////////////////////////////////// 
// ChildFrm.cpp : implementation of the CChildFrame class 
// 
// ModelMagic 3D and 'glOOP' (OpenGL Object Oriented Programming library) 
// Copyright (c) Craig Fahrnbach 1997, 1999 
// 
// OpenGL is a registered trademark of Silicon Graphics 
// 
// 
// This program is provided for educational and personal use only and 
// is provided without guarantee or warrantee expressed or implied. 
// 
// Commercial use is strickly prohibited without written permission 
// from ImageWare Development. 
// 
///////////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "ModelMagic3D.h" 
#include "ChildFrm.h" 
 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
 
///////////////////////////////////////////////////////////////////////////// 
// CChildFrame 
 
IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd) 
 
BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd) 
	//{{AFX_MSG_MAP(CChildFrame) 
	ON_WM_PALETTECHANGED() 
	ON_WM_QUERYNEWPALETTE() 
	ON_WM_DESTROY() 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CChildFrame construction/destruction 
 
CChildFrame::CChildFrame() 
{ 
	m_bWndInitialized = FALSE; 
} 
 
CChildFrame::~CChildFrame() 
{ 
} 
 
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs) 
{ 
	// TODO: Modify the Window class or styles here by modifying 
	//  the CREATESTRUCT cs 
 
	return CMDIChildWnd::PreCreateWindow(cs); 
} 
 
///////////////////////////////////////////////////////////////////////////// 
// CChildFrame diagnostics 
 
#ifdef _DEBUG 
void CChildFrame::AssertValid() const 
{ 
	CMDIChildWnd::AssertValid(); 
} 
 
void CChildFrame::Dump(CDumpContext& dc) const 
{ 
	CMDIChildWnd::Dump(dc); 
} 
 
#endif //_DEBUG 
 
///////////////////////////////////////////////////////////////////////////// 
// CChildFrame message handlers 
 
void CChildFrame::ActivateFrame(int nCmdShow)  
{ 
	// TODO: Add your specialized code here and/or call the base class 
	if(!m_bWndInitialized) { 
		m_bWndInitialized = TRUE; 
		 
		// Get the last setting of the window position from 
		// the ini file and restore 
		WINDOWPLACEMENT wp; 
		GetWindowPlacement(&wp); 
 
		if(!ReadWindowPlacement(&wp, "Settings", "ChildWindowPos")) 
		{ 
			// The ini file is corrupt or does not exist, so position the 
			// child frame to allow for our floating dialog bars. 
			wp.rcNormalPosition.top    = 0; 
			wp.rcNormalPosition.bottom = 100; 
			wp.rcNormalPosition.left   = 0; 
			wp.rcNormalPosition.right  = 50; 
		} 
		 
		// Now restore (or set) our window position 
		SetWindowPlacement(&wp); 
	} 
 
	CMDIChildWnd::ActivateFrame(nCmdShow); 
} 
 
void CChildFrame::OnDestroy()  
{ 
	CMDIChildWnd::OnDestroy(); 
	 
	// TODO: Add your message handler code here 
 
	// Save the state of our CView window 
	WINDOWPLACEMENT wp; 
	wp.length = sizeof wp; 
	if (GetWindowPlacement(&wp)) 
	{ 
		wp.flags = 0; 
		if (::IsZoomed(m_hWnd)) 
			wp.flags |= WPF_RESTORETOMAXIMIZED; 
		// and write it to the .INI file 
		WriteWindowPlacement(&wp, "Settings", "ChildWindowPos"); 
	} 
} 
 
void CChildFrame::OnPaletteChanged(CWnd* pFocusWnd)  
{ 
	CMDIChildWnd::OnPaletteChanged(pFocusWnd); 
	 
	// Route message to CView derived class 
	CView* pView = GetActiveView(); 
	if (pView) { 
		// OnPaletteChanged is not public, so send a message. 
		pView->SendMessage(WM_PALETTECHANGED, 
						  (WPARAM)(pFocusWnd->GetSafeHwnd()), 
						  (LPARAM)0); 
	} 
	 
} 
 
BOOL CChildFrame::OnQueryNewPalette()  
{ 
	// Route message to CView derived class 
	CView* pView = GetActiveView(); 
	if (pView) { 
		// OnPaletteChanged is not public, so send a message. 
		pView->SendMessage(WM_QUERYNEWPALETTE, 
						  (WPARAM)0, 
						  (LPARAM)0); 
	} 
 
//	return FALSE; 
	 
	return CMDIChildWnd::OnQueryNewPalette(); 
}