www.pudn.com > vcppnet2.rar > Ex21c.cpp


// Ex21c.cpp : Defines the class behaviors for the application. 
// 
 
#include "stdafx.h" 
#include "Ex21c.h" 
#include "MainFrm.h" 
 
#include "ChildFrm.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#endif 
 
 
// CEx21cApp 
 
BEGIN_MESSAGE_MAP(CEx21cApp, CWinApp) 
	ON_COMMAND(ID_APP_ABOUT, OnAppAbout) 
	ON_COMMAND(ID_FILE_NEW, OnFileNew) 
END_MESSAGE_MAP() 
 
 
// CEx21cApp construction 
 
CEx21cApp::CEx21cApp() 
{ 
	// TODO: add construction code here, 
	// Place all significant initialization in InitInstance 
} 
 
 
// The one and only CEx21cApp object 
 
CEx21cApp theApp; 
 
// CEx21cApp initialization 
 
BOOL CEx21cApp::InitInstance() 
{ 
	// InitCommonControls() is required on Windows XP if an application 
	// manifest specifies use of ComCtl32.dll version 6 or later to enable 
	// visual styles.  Otherwise, any window creation will fail. 
	InitCommonControls(); 
 
	CWinApp::InitInstance(); 
 
	// Initialize OLE libraries 
	if (!AfxOleInit()) 
	{ 
		AfxMessageBox(IDP_OLE_INIT_FAILED); 
		return FALSE; 
	} 
	AfxEnableControlContainer(); 
	// Standard initialization 
	// If you are not using these features and wish to reduce the size 
	// of your final executable, you should remove from the following 
	// the specific initialization routines you do not need 
	// Change the registry key under which our settings are stored 
	// TODO: You should modify this string to be something appropriate 
	// such as the name of your company or organization 
	SetRegistryKey(_T("Local AppWizard-Generated Applications")); 
	// To create the main window, this code creates a new frame window 
	// object and then sets it as the application's main window object 
	CMDIFrameWnd* pFrame = new CMainFrame; 
	m_pMainWnd = pFrame; 
	// create main MDI frame window 
	if (!pFrame->LoadFrame(IDR_MAINFRAME)) 
		return FALSE; 
	// try to load shared MDI menus and accelerator table 
	//TODO: add additional member variables and load calls for 
	//	additional menu types your application may need 
	HINSTANCE hInst = AfxGetResourceHandle(); 
	m_hMDIMenu  = ::LoadMenu(hInst, MAKEINTRESOURCE(IDR_Ex21cTYPE)); 
	m_hMDIAccel = ::LoadAccelerators(hInst, MAKEINTRESOURCE(IDR_Ex21cTYPE)); 
	// The main window has been initialized, so show and update it 
	pFrame->ShowWindow(m_nCmdShow); 
	pFrame->UpdateWindow(); 
	return TRUE; 
} 
 
 
// CEx21cApp message handlers 
 
int CEx21cApp::ExitInstance()  
{ 
	//TODO: handle additional resources you may have added 
	if (m_hMDIMenu != NULL) 
		FreeResource(m_hMDIMenu); 
	if (m_hMDIAccel != NULL) 
		FreeResource(m_hMDIAccel); 
 
	return CWinApp::ExitInstance(); 
} 
void CEx21cApp::OnFileNew()  
{ 
	CMainFrame* pFrame = STATIC_DOWNCAST(CMainFrame, m_pMainWnd); 
	// create a new MDI child window 
	pFrame->CreateNewChild( 
		RUNTIME_CLASS(CChildFrame), IDR_Ex21cTYPE, m_hMDIMenu, m_hMDIAccel); 
} 
 
 
// CAboutDlg dialog used for App About 
 
class CAboutDlg : public CDialog 
{ 
public: 
	CAboutDlg(); 
 
// Dialog Data 
	enum { IDD = IDD_ABOUTBOX }; 
 
protected: 
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support 
 
// Implementation 
protected: 
	DECLARE_MESSAGE_MAP() 
}; 
 
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) 
{ 
} 
 
void CAboutDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
} 
 
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) 
END_MESSAGE_MAP() 
 
// App command to run the dialog 
void CEx21cApp::OnAppAbout() 
{ 
	CAboutDlg aboutDlg; 
	aboutDlg.DoModal(); 
} 
 
 
// CEx21cApp message handlers